VBA per verificare se una stringa contiene un'altra stringa in Excel (6 metodi)

  • Condividi Questo
Hugh West

Implementazione VBA è il metodo più efficace, rapido e sicuro per eseguire qualsiasi operazione in Excel. In questo articolo vi mostreremo come verificare se una stringa contiene un'altra stringa in Excel usando VBA .

Scarica il modello di pratica

È possibile scaricare gratuitamente il modello Excel di esercitazione da qui.

VBA per verificare se una stringa contiene un valore.xlsm

6 metodi in VBA per verificare se una stringa contiene un'altra stringa in Excel

Di seguito, in questa sezione, troverete 6 metodi efficaci su come implementare VBA per verificare se una stringa contiene o meno un'altra stringa.

1. VBA per verificare se la stringa contiene una sottostringa

Di seguito è riportato un esempio di la funzione InStr per trovare se una stringa contiene una sottostringa in Excel.

Passi:

  • Stampa Alt + F11 sulla tastiera o andare alla scheda Sviluppatore -> Visual Basic per aprire Editor Visual Basic .

  • Nella finestra del codice a comparsa, dalla barra dei menu, fare clic su Inserire -> Modulo .

  • Nella finestra del codice, copiare il codice seguente e incollarlo.
 Public Sub ContainSub() If InStr("Film: Iron Man, Batman, Superman, Spiderman, Thor", "Hulk")> 0 Then MsgBox "Film trovato" Else MsgBox "Film non trovato" End If End Sub 

Il codice è ora pronto per essere eseguito.

  • Correre la macro.

Se il vostro contiene la sottostringa allora si otterrà una corrispondenza trovata, altrimenti non si otterrà alcuna corrispondenza.

Nel nostro esempio, volevamo scoprire se la nostra stringa primaria " Film: Iron Man, Batman, Superman, Spiderman, Thor " contiene la parola " Hulk "Se non lo fa, si ottiene un Film non trovato risultato.

2. VBA per verificare se una stringa contiene un numero

È possibile cercare se le stringhe contengono numeri o meno utilizzando l'opzione VBA codice.

Guardate l'esempio seguente in cui troveremo quali stringhe contengono numeri con i nomi dei film.

Passi per verificare se le stringhe contengono numeri con VBA sono riportati di seguito.

Passi:

  • Allo stesso modo di prima, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Nella finestra del codice, copiare il codice seguente e incollarlo.
 Function SearchNumbers(oRng As Range) As Boolean Dim bSearchNumbers As Boolean, i As Long bSearchNumbers = False For i = 1 To Len(oRng.Text) If IsNumeric(Mid(oRng.Text, i, 1)) Then bSearchNumbers = True Exit For End If Next SearchNumbers = bSearchNumbers End Function 
  • Questa non è una Sottoprocedura per la VBA per l'esecuzione del programma, questo crea un Funzione definita dall'utente (UDF), che verrà richiamato nel nostro foglio di lavoro per eseguire l'attività. Quindi, dopo aver scritto il codice, invece di fare clic sul tasto Correre fare clic sul pulsante Risparmiare dalla barra dei menu per salvare il file macro.
  • Ora tornate al foglio di lavoro di interesse e scrivete la funzione definita dall'utente che avete appena creato nella cartella VBA codice ( Numero di ricerca , nella prima riga del codice) e all'interno delle parentesi della funzione, inserire il numero di riferimento della cella della stringa che ha i numeri iniziali (ad es. Cellula B5 ).
  • Stampa Entrare .

Si otterrà un valore booleano ( VERO o Falso ), se la stringa nella cella contiene numeri si otterrà VERO , altrimenti FALSO .

  • Trascinare la cella verso il basso di Maniglia di riempimento per applicare la formula al resto delle celle e verificare quale stringa contiene numeri e quale no.

3. VBA per estrarre numeri da una stringa

Nella sezione precedente abbiamo imparato a verificare se la stringa contiene o meno dei numeri e in questa sezione impareremo a estrarre i numeri e a inserirli in un'altra cella con l'esempio riportato di seguito.

Passi per verificare se le stringhe contengono numeri ed estrarli con VBA sono riportati di seguito.

Passi:

  • Aperto Editor Visual Basic dal Sviluppatore e Inserire a Modulo utente questa volta dalla scheda Inserisci della finestra del codice.
  • Dall'apparizione Cassetta degli attrezzi , trascinare e rilasciare Pulsante di comando nel Modulo utente .

  • Doppio clic sul pulsante, copiare il codice seguente e incollarlo.
 Private Sub CommandButton1_Click() Worksheets("Number").Range("C2:C15").ClearContents checkNumber (Worksheets("Number").Range("B2:B15")) End Sub checkNumber(objRange As Range) Dim myAccessary As Variant Dim i As Long Dim iRow As Long iRow = 2 For Each myAccessary In objRange For i = 1 To Len(myAccessary.Value) If IsNumeric(Mid(myAccessary.Value, i,1)) Then If Trim(objRange.Cells(objRange.Row - 1, 2)) "" Then objRange.Cells(iRow - 1, 2) = _ objRange.Cells(iRow - 1, 2) & Mid(myAccessary.Text, i, 1) Else objRange.Cells(iRow - 1, 2) = Mid(myAccessary.Text, i, 1) End If End If Next iRow = iRow + 1Successivo myAccessary Fine Sub 
  • Correre il codice e si accederà al foglio di lavoro di interesse.
  • Fare clic sul pulsante di comando e si otterrà il numero estratto dalle stringhe.

4. VBA per verificare se una stringa contiene una determinata lettera

Questo metodo è quasi simile al metodo di controllo delle sottostringhe in una stringa.

Di seguito è riportato il InStr per trovare se una stringa contiene una determinata lettera in Excel.

Passi:

  • Allo stesso modo di prima, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Nella finestra del codice, copiare il codice seguente e incollarlo.
 Public Sub ContainChar() If InStr("Film: Iron Man, Batman, Superman, Spiderman, Thor", "Z")> 0 Then MsgBox "Lettera trovata" Else MsgBox "Lettera non trovata" End If End Sub 

Il codice è ora pronto per essere eseguito.

  • Correre il programma. Se il vostro contiene la lettera allora si otterrà una corrispondenza trovata, altrimenti non si otterrà alcuna corrispondenza.

Nel nostro esempio, volevamo scoprire se la nostra stringa primaria " Film: Iron Man, Batman, Superman, Spiderman, Thor " contiene la lettera " Z "Se non lo fa, si ottiene un Lettera non trovata risultato.

5. VBA per verificare se un intervallo di stringhe contiene un'altra stringa

Abbiamo imparato a verificare se una determinata stringa contiene o meno un'altra stringa, ma in questa sezione impareremo a verificare se un intervallo di stringhe contiene o meno delle sottostringhe, utilizzando come esempio il seguente set di dati.

Passi:

  • Aperto Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Nella finestra del codice, copiare il codice seguente e incollarlo.
 Public Sub ContainsSub() If InStr(ActiveSheet.Select, "Hulk")> 0 Then MsgBox "Film trovato" Else MsgBox "Film non trovato" End If End Sub 

Il codice è ora pronto per essere eseguito.

  • Correre il codice.

Se la vostra gamma di contiene la sottostringa allora si otterrà una corrispondenza trovata, altrimenti non si otterrà alcuna corrispondenza.

6. VBA per estrarre stringhe da una stringa

In questa sezione vedremo come verificare se le stringhe contengono determinate sottostringhe ed estrarle in un'altra cella.

Verranno estratte le informazioni dei nomi che iniziano con " Chris " dal seguente set di dati.

Passi :

  • Aperto Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Nella finestra del codice, copiare il codice seguente e incollarlo.
 Sub SearchSub() Dim lastrow As Long Dim i As Integer, count As Integer lastrow = ActiveSheet.Range("A30000").End(xlUp).Row For i = 1 To lastrow If InStr(1, LCase(Range("C" & i)), "Chris") 0 Then count = count + 1 Range("F" & count & ":H" & count) = Range("B" & i & ":D" & i).Value End If Next i End Sub 

Il codice è ora pronto per essere eseguito.

  • Correre il codice.

Solo i nomi che iniziano con " Chris " saranno memorizzati nelle celle predefinite.

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.