De VBA-functie SpecialCells(xlCellTypeBlanks) werkt niet zoals verwacht in Excel

Symptomen

Wanneer u een VBA-macro (Microsoft Visual Basic for Applications) maakt waarmee meerdere niet-aaneengesloten bereiken worden geselecteerd in een Microsoft Excel-werkmap die gebruikmaakt van een VBA-expressie die vergelijkbaar is met de volgende, worden acties uitgevoerd die alleen zouden moeten worden uitgevoerd met niet-aaneengesloten cellen in elke cel in de oorspronkelijke selectie op het werkblad:

expression.SpecialCells(XlCellType).expression XlCellType

kan een van de volgende zijn:

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

Oorzaak

Dit gedrag treedt op als u meer dan 8.192 niet-aaneengesloten cellen met uw macro selecteert. Excel ondersteunt maximaal 8.192 niet-aaneengesloten cellen via VBA-macro's.

Als u handmatig meer dan 8.192 niet-aaneengesloten cellen probeert te selecteren, ontvangt u doorgaans het volgende foutbericht:

De selectie is te groot.

Wanneer u echter een VBA-macro gebruikt om dezelfde of een vergelijkbare selectie te maken, wordt er geen foutbericht weergegeven en wordt er geen foutcode gegenereerd die kan worden vastgelegd via een fouthandler.

Tijdelijke oplossing

Als u dit gedrag wilt omzeilen, kunt u een lusstructuur maken in uw VBA-macro die minder dan de maximale 8.192 cellen verwerkt.

Status

Dit gedrag is inherent aan het ontwerp van het product.