Vba: come contare le occorrenze di caratteri in una stringa
È possibile utilizzare la seguente sintassi di base per contare il numero di occorrenze di un carattere in una stringa utilizzando VBA:
Sub CountOccurrences()
Dim i As Integer
'Specify character to look for
my_char = "/"
'Count occurrences in each string in B2:B12 and display results in C2:C12
For i = 2 To 12
Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
Range(" C " & i) = Count
Next i
End Sub
Questo particolare esempio conta il numero di occorrenze di una barra ( / ) in ogni cella nell’intervallo B2:B12 e visualizza i risultati nell’intervallo C2:C12 .
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: contare le occorrenze di caratteri in una stringa utilizzando VBA
Supponiamo di avere il seguente set di dati in Excel che mostra i nomi di diversi giocatori di basket e le posizioni che possono ricoprire in una partita:
Supponiamo di voler contare il numero di barre ( / ) in ciascuna stringa nella colonna Posizione.
Per fare ciò possiamo creare la seguente macro:
Sub CountOccurrences()
Dim i As Integer
'Specify character to look for
my_char = "/"
'Count occurrences in each string in B2:B12 and display results in C2:C12
For i = 2 To 12
Count = (Len(Range(" B " & i)) - Len(Replace(Range(" B " & i), my_char, ""))) / Len(my_char)
Range(" C " & i) = Count
Next i
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
I valori nella colonna C mostrano il numero di occorrenze di barre nelle stringhe corrispondenti nella colonna B.
Per esempio:
- La stringa Guard /Forward contiene 1 barra.
- La stringa Guard contiene 0 barre.
- La stringa Guard contiene 0 barre.
- La stringa Avanti/Centro contiene 1 barra.
E così via.
Per contare le occorrenze di un carattere diverso, cambia semplicemente il carattere della variabile my_char nella macro.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come verificare se una stringa contiene un’altra stringa
VBA: come contare il numero di righe nell’intervallo
VBA: come scrivere le funzioni COUNTIF e COUNTIFS