Vba: come contare le celle con testo specifico
È possibile utilizzare la seguente sintassi di base per contare il numero di celle in un intervallo contenente testo specifico utilizzando VBA:
SubCountCellsWithText ()
Range(" D2 ") = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
End Sub
Questo particolare esempio conta il numero di celle nell’intervallo A2:A13 che contengono “avs”, quindi assegna il risultato alla cella D2 .
Nota : gli asterischi ( * ) vengono utilizzati come caratteri jolly nella funzione Countif .
Se invece desideri visualizzare il numero di celle in una finestra di messaggio, puoi utilizzare la seguente sintassi:
SubCountCellsWithText ()
Dim cellCount As Integer
'Calculate number of cells that contain 'avs'
cellCount = WorksheetFunction.CountIf(Range(" A2:A13 "), "* avs* ")
'Display the result
MsgBox "Cells that contain avs : " & cellCount
End Sub
Gli esempi seguenti mostrano come utilizzare nella pratica ciascuno di questi metodi con il seguente set di dati in Excel che contiene informazioni su vari giocatori di basket:
Esempio 1: contare le celle con testo specifico utilizzando VBA e visualizzare i risultati nella cella
Supponiamo di voler contare il numero di celle contenenti “avs” nel nome della squadra e visualizzare i risultati in una cella specifica.
Per fare ciò possiamo creare la seguente macro:
SubCountCellsWithText ()
Range(" D2 ") = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
Nota che la cella D2 contiene il valore 5 .
Questo ci dice che ci sono 5 celle nell’intervallo A2:A13 che contengono “avs” nel nome della squadra.
Esempio 2: contare le celle con testo specifico utilizzando VBA e visualizzare i risultati nella finestra di messaggio
Supponiamo invece di voler contare il numero di celle contenenti “avs” e visualizzare i risultati in una finestra di messaggio.
Per fare ciò possiamo creare la seguente macro:
SubCountCellsWithText ()
Dim cellCount As Integer
'Calculate number of cells that contain 'avs'
cellCount = WorksheetFunction.CountIf(Range(" A2:A13 "), " *avs* ")
'Display the result
MsgBox "Cells that contain avs : " & cellCount
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
La finestra di messaggio ci dice che ci sono 5 celle che contengono “avs” nel nome della squadra.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: una formula semplice per “Se la cella contiene”
VBA: come contare le occorrenze di caratteri in una stringa
VBA: come verificare se una stringa contiene un’altra stringa