La funzione VBA SpecialCells(xlCellTypeBlanks) non funziona come previsto in Excel

Sintomi

Quando si crea una macro di Microsoft Visual Basic, Applications Edition (VBA) che seleziona più intervalli non contigui in una cartella di lavoro di Microsoft Excel che utilizza un'espressione VBA simile alla seguente, le azioni che si supponevano si verificassero solo con celle non contigue si verificano in ogni cella della selezione originale del foglio di lavoro:

expression.SpecialCells(XlCellType).expression XlCellType

può essere uno dei seguenti:

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

Causa

Questo comportamento si verifica se si selezionano più di 8.192 celle non contigue con la macro. Excel supporta solo un massimo di 8.192 celle non contigue tramite macro VBA.

In genere, se si tenta di selezionare manualmente più di 8.192 celle non contigue, viene visualizzato il messaggio di errore seguente:

La selezione è troppo grande.

Tuttavia, quando si usa una macro VBA per effettuare la stessa selezione o una selezione simile, non viene generato alcun messaggio di errore e non viene generato alcun codice di errore che può essere acquisito tramite un gestore degli errori.

Soluzione alternativa

Per risolvere questo comportamento, è possibile creare una struttura di ciclo nella macro VBA che gestisce meno delle 8.192 celle massime.

Stato

Si tratta di un comportamento legato alla progettazione del prodotto.