A função VBA SpecialCells(xlCellTypeBlanks) não funciona conforme esperado no Excel
Sintomas
Quando cria uma macro do Microsoft Visual Basic for Applications (VBA) que seleciona múltiplos intervalos não contíguos num livro do Microsoft Excel que utiliza uma expressão VBA semelhante à seguinte, ocorrem ações que só deveriam ocorrer com células não contíguas a todas as células na seleção original na folha de cálculo:
expression.SpecialCells(XlCellType).expression XlCellType
pode ser qualquer um dos seguintes:
- xlCellTypeAllFormatConditions
- xlCellTypeAllValidation
- xlCellTypeBlanks
- xlCellTypeComments
- xlCellTypeConstants
- xlCellTypeFormulas
- xlCellTypeSameFormatConditions
- xlCellTypeSameValidation
- xlCellTypeVisible
Causa
Este comportamento ocorre se selecionar mais de 8192 células não contíguas com a macro. O Excel só suporta um máximo de 8192 células não contíguas através de macros VBA.
Normalmente, se tentar selecionar manualmente mais de 8192 células não contíguas, receberá a seguinte mensagem de erro:
A seleção é demasiado grande.
No entanto, quando utiliza uma macro VBA para fazer a mesma seleção ou uma seleção semelhante, não é gerada nenhuma mensagem de erro e não é gerado nenhum código de erro que possa ser capturado através de um processador de erros.
Solução
Para contornar este comportamento, poderá querer criar uma estrutura de ciclo na macro VBA que processe menos do que as 8192 células máximas.
Estado
Este comportamento é por concepção.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários