Vba: una formula semplice per “se la cella contiene”
È possibile utilizzare la seguente sintassi di base per utilizzare una formula per “se la cella contiene” in VBA:
Sub IfContains()
Dim i As Integer
For i = 2 To 8
If InStr(1, LCase(Range(" A " & i)), " turtle ") <> 0 Then
Result = " Contains Turtle "
Else
Result = “ Does Not Contain Turtle ”
End If
Range(" B " & i) = Result
Next i
End Sub
Questo particolare esempio controlla se ogni cella nell’intervallo A2:A8 contiene “tartaruga”, quindi assegna “Contiene una tartaruga” o “Non contiene una tartaruga” a ciascuna cella corrispondente nell’intervallo B2:B8 .
Nota : il metodo Instr controlla se una stringa contiene un’altra stringa e il metodo LCase converte il testo in minuscolo per eseguire una ricerca senza distinzione tra maiuscole e minuscole.
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: come utilizzare “Se la cella contiene” in VBA
Supponiamo di avere il seguente elenco di celle in Excel, ciascuna contenente testo diverso:
Supponiamo di voler verificare se ogni cella nell’intervallo A2:A8 contiene il testo “tartaruga” e visualizzare i risultati nelle celle corrispondenti nell’intervallo B2:B8 .
Per fare ciò possiamo creare la seguente macro:
Sub IfContains()
Dim i As Integer
For i = 2 To 8
If InStr(1, LCase(Range(" A " & i)), " turtle ") <> 0 Then
Result = " Contains Turtle "
Else
Result = “ Does Not Contain Turtle ”
End If
Range(" B " & i) = Result
Next i
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
La colonna B ci dice se le celle corrispondenti nella colonna A contengono o meno la parola “tartaruga” da qualche parte nel testo.
Nota : qui è possibile trovare la documentazione completa per il metodo VBA Instr .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come contare le occorrenze di caratteri in una stringa
VBA: come verificare se una stringa contiene un’altra stringa