The SpecialCells(xlCellTypeBlanks) VBA function does not work as expected in Excel
Symptoms
When you create a Microsoft Visual Basic for Applications (VBA) macro that selects multiple non-contiguous ranges in a Microsoft Excel workbook that uses a VBA expression that is similar to the following, actions that were only supposed to occur with non-contiguous cells occur to every cell in the original selection on the worksheet:
expression.SpecialCells(XlCellType).expression XlCellType
can be any one of the following:
- xlCellTypeAllFormatConditions
- xlCellTypeAllValidation
- xlCellTypeBlanks
- xlCellTypeComments
- xlCellTypeConstants
- xlCellTypeFormulas
- xlCellTypeSameFormatConditions
- xlCellTypeSameValidation
- xlCellTypeVisible
Cause
This behavior occurs if you select more than 8,192 non-contiguous cells with your macro. Excel only supports a maximum of 8,192 non-contiguous cells through VBA macros.
Typically, if you try to manually select more than 8,192 non-contiguous cells, you receive the following error message:
The selection is too large.
However, when you use a VBA macro to make the same or a similar selection, no error message is raised and no error code is generated that can be captured through an error handler.
Workaround
To work around this behavior, you may want to create a looping structure in your VBA macro that handles less than the maximum 8,192 cells.
Status
This behavior is by design.
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for