Vba: come verificare se una stringa contiene un'altra stringa
È possibile utilizzare la funzione Instr() in VBA per verificare se una stringa contiene un’altra stringa.
Questa funzione utilizza la seguente sintassi di base:
Instr(inizio, stringa1, stringa2, …)
Oro:
- start : la posizione iniziale della ricerca
- string1 : la stringa da cercare
- string2 : la stringa che stai cercando
L’esempio seguente mostra come utilizzare questa funzione nella pratica.
Esempio: utilizzare VBA per verificare se la stringa contiene un’altra stringa
Supponiamo di avere il seguente set di dati in Excel che contiene informazioni su varie squadre di basket:
Ora supponiamo di voler verificare se ogni stringa nella colonna Team contiene “avs” da qualche parte nella stringa.
Possiamo utilizzare la seguente sintassi in VBA per verificare se ogni stringa nella colonna Team contiene “avs” e, in tal caso, restituire l’intera riga nelle colonne D ed E:
Sub StringContains() Dim i As Integer , i_num As Integer For i = 2 To 9 If InStr(1, LCase(Range(" A " & i)), " avs ") <> 0 Then i_num = i_num + 1 Range(" D " & i_num & " :E " & i_num) = Range(" A " & i & " :B " & i).Value End If Next i End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
Tieni presente che ciascuna riga contenente la stringa “avs” da qualche parte nella colonna Team viene restituita nelle colonne D ed E.
In questo esempio, solo due squadre (Mavs e Cavs) contenevano “avs” nella colonna Team.
Per cercare una stringa diversa, sostituisci semplicemente “avs” nel codice sopra con la stringa di tua scelta.
Nota n. 1: nel codice abbiamo utilizzato For i = da 2 a 9 poiché le celle da A2 ad A9 contenevano le stringhe a cui eravamo interessati. Sentiti libero di modificare questo intervallo in base all’intervallo di celle che stai cercando.
Nota n.2 : puoi trovare la documentazione completa della funzione Instr() in VBA qui .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni utilizzando VBA:
VBA: come contare le occorrenze di caratteri in una stringa
VBA: come contare il numero di righe nell’intervallo
VBA: come calcolare il valore medio dell’intervallo