La función VBA SpecialCells(xlCellTypeBlanks) no funciona según lo esperado en Excel

Síntomas

Al crear una macro de Microsoft Visual Basic para Aplicaciones (VBA) que selecciona varios rangos no contiguos en un libro de Microsoft Excel que usa una expresión VBA similar a la siguiente, se producen acciones que solo se suponía que se producían con celdas no contiguas en cada celda de la selección original de la hoja de cálculo:

expression.SpecialCells(XlCellType).expression XlCellType

puede ser cualquiera de los siguientes:

  • xlCellTypeAllFormatConditions
  • xlCellTypeAllValidation
  • xlCellTypeBlanks
  • xlCellTypeComments
  • xlCellTypeConstants
  • xlCellTypeFormulas
  • xlCellTypeSameFormatConditions
  • xlCellTypeSameValidation
  • xlCellTypeVisible

Causa

Este comportamiento se produce si selecciona más de 8 192 celdas no contiguas con la macro. Excel solo admite un máximo de 8 192 celdas no contiguas a través de macros vba.

Normalmente, si intenta seleccionar manualmente más de 8 192 celdas no contiguas, recibirá el siguiente mensaje de error:

La selección es demasiado grande.

Sin embargo, cuando se usa una macro vba para hacer la misma selección o una selección similar, no se genera ningún mensaje de error y no se genera ningún código de error que se pueda capturar a través de un controlador de errores.

Solución alternativa

Para evitar este comportamiento, es posible que desee crear una estructura de bucle en la macro de VBA que controle menos de las 8 192 celdas máximas.

Estado

Este comportamiento es una característica del diseño de la aplicación.