Teilstringsuche mit VBA (9 Möglichkeiten)

  • Teile Das
Hugh West

Wenn Sie auf der Suche nach einigen der einfachsten Möglichkeiten, um Teilzeichenfolge mit VBA zu finden, dann sind Sie an der richtigen Stelle. Nachdem Sie durch diesen Artikel gehen, werden Sie in der Lage, die Position einer Teilzeichenfolge zu finden oder Daten mit dieser Teilzeichenfolge zu extrahieren oder das Format einer Teilzeichenfolge leicht ändern. Lassen Sie uns in den Artikel zu bekommen.

Arbeitsbuch herunterladen

Beispielhafter Inhalt

9 Wege zum Finden von Teilstrings mit VBA

Hier habe ich die folgende Datentabelle, mit der ich die Möglichkeiten der Suche nach Teilzeichenfolge in einer Zeichenfolge mit VBA zeigen werde.

Ich habe diese Aufgabe mit Microsoft Excel 365 Version, können Sie jede andere Version nach Belieben verwenden.

Methode 1: Suche nach Teilstrings in einer Zeichenkette mit VBA

Wenn Sie die gewünschte Teilzeichenkette in einer Zeichenkette mit VBA suchen möchten, können Sie Folgendes verwenden die Funktion InStr im VBA-Code.

Stufe-01 :

➤Go to Entwickler Tab>> Visual Basic Option

Dann wird die Visual Basic-Editor wird sich öffnen.

➤Go to einfügen. Tab>> Modul Option

Danach wird ein Modul erstellt werden.

Schritt-02 :

➤ Schreiben Sie folgenden Code

 Sub FindFirst() Dim Pos As Integer Pos = InStr(1, "Ich denke, also bin ich", "denke") MsgBox Pos End Sub 

Hier, InStr(1, "Ich denke, also bin ich", "denke") gibt die Position der Teilzeichenkette einer Zeichenkette zurück. 1 ist die Startposition, " Ich denke, also bin ich" ist die Zeichenkette, in der Sie die gewünschte Teilzeichenkette finden, und "denken" ist die Teilzeichenkette, die Sie suchen möchten. Standardmäßig wird zwischen Groß- und Kleinschreibung unterschieden, achten Sie also auf die Groß- und Kleinschreibung der Teilzeichenkette, die Sie suchen möchten.

➤ Drücken F5

Ergebnis :

Danach erhalten Sie folgende Informationen Nachrichten-Box die die Position des "denken" Teilstring.

Methode 2: Groß-/Kleinschreibung nicht beachtende Teilzeichenfolge in einer Zeichenkette finden

Wenn Sie Ihre gewünschte Teilzeichenkette in einer Zeichenkette unabhängig von der Groß-/Kleinschreibung mit VBA finden möchten, dann folgen Sie dieser Methode.

Stufe-01 :

➤Folgen Stufe-01 von Methode-1

 Public Sub caseinsensitive() Dim Pos As Integer Pos = InStr(1, "I Think Therefore I Am", "think",vbTextCompare) MsgBox Pos End Sub 

Hier, vbTextCompare wird verwendet, um eine Teilzeichenkette ohne Berücksichtigung der Groß- und Kleinschreibung zu finden.

➤ Drücken F5

Ergebnis :

Sie erhalten dann folgende Informationen Nachrichten-Box die die Position des "denken" Teilstring.

Sie können dies auch mit dem folgenden Code tun.

 Option Compare Text Public Sub caseinsensitive() Dim Pos As Integer Pos = InStr(1, "I Think Therefore I Am", "think") MsgBox Pos End Sub 

Hier, Option Text vergleichen findet eine Teilzeichenkette, die Groß- und Kleinschreibung nicht berücksichtigt.

➤ Drücken F5

Ergebnis :

Danach erhalten Sie folgende Informationen Nachrichten-Box die die Position des "denken" Teilstring.

Methode 3: Verwendung der Funktion InstrRev in VBA

Hier zeige ich, wie man eine Teilzeichenkette am Ende einer Zeichenkette findet.

Stufe-01 :

➤Folgen Stufe-01 von Methode-1

 Sub FindFromEnd() MsgBox InStrRev("Ich denke, also bin ich", "Ich") End Sub 

InStrRev findet die Teilzeichenkette von der rechten Seite statt von der linken Seite.

➤ Drücken F5

Ergebnis :

Sie erhalten dann folgende Informationen Nachrichten-Box die die Position des zweiten "I" Teilstring von der rechten Seite.

Methode 4: Ermitteln der Position einer Teilzeichenkette in einer Zeichenkette in einem Datenbereich

Wenn Sie das Sonderzeichen finden wollen "@" im E-Mail-Kennung dann folgen Sie dieser Methode. Ich habe hier die Spalte Position zu diesem Zweck.

Stufe-01 :

➤Folgen Stufe-01 von Methode-1

 Function FindSubstring(value As Range) As Integer Dim Pos As Integer Pos = InStr(1, value, "@") FindSubstring = Pos End Function 

Es wird eine Funktion namens FindSubstring (Sie können jeden anderen Namen verwenden)

Wert ist der Zellverweis, der die Zeichenkette enthält, und wird deklariert als Bereich .

Schritt-02 :

➤Wählen Sie den Ausgang Zelle E5

➤Tippen Sie die folgende Funktion (erstellt von VBA )

=FindSubstring(D5)

D5 ist die Zelle, die die Zeichenfolge enthält.

➤ Drücken EINGEBEN

➤Ziehen Sie die Füllen Griff Werkzeug

Ergebnis :

Danach erhalten Sie die Positionen des Sonderzeichens " @" im E-Mail-Kennung .

Ähnliche Lektüre:

  • Suchen einer Zeichenfolge in einer Zelle mit VBA in Excel (2 Methoden)
  • FindNext mit VBA in Excel (2 Beispiele)
  • Wie man mit VBA in Excel eine Zeichenfolge findet (8 Beispiele)
  • VBA Letzte Zeile in Excel suchen (5 Möglichkeiten)

Methode 5: Überprüfung einer bestimmten Teilzeichenkette in einer Zeichenkette in einem Datenbereich

Angenommen, Sie wollen schreiben Pass oder Nicht korrespondieren zu den Namen der Schüler je nach Ergebnis-Spalte wobei Pass oder Fail in eine Klammer geschrieben wurde. Um diese Teilzeichenkette in der Datei Ergebnis-Spalte und notieren Sie sie in der Spalte "Bestanden oder nicht bestanden diese Methode anwenden.

Stufe-01 :

➤Folgen Stufe-01 von Methode-1

 Sub CheckSubstring() Dim cell As Range For Each cell In Range("C5:C10") If InStr(cell.value, "Pass")> 0 Then cell.Offset(0, 1).value = "Passed" Else cell.Offset(0, 1).value = "Failed" End If Next cell End Sub 

Hier ist der Zellbereich C5:C10 die die Ergebnis-Spalte

InStr(cell.value, "Pass")> 0 ist die Bedingung, bei der die Zahl größer als Null ist (wenn die Zelle "Pass" ), dann wird die folgende Zeile fortgesetzt und gibt die Ausgabe in der benachbarten Zelle als Bestanden .

Wenn die Bedingung falsch ist, bedeutet das, dass eine Zelle keine Daten enthält. "Pass" dann die Zeile unter Sonst wird ausgeführt und gibt den Ausgabewert in der benachbarten Zelle als Gescheitert .

Diese Schleife wird für jede Zelle fortgesetzt.

➤ Drücken F5

Ergebnis :

Sie erhalten dann die folgenden Ausgaben in der Bestehen oder Durchfallen Spalte.

Methode 6: Prüfen einer bestimmten Teilzeichenkette in einer Zeichenkette und Extrahieren von Daten

Ich zeige Ihnen den Weg zu den Schülern mit dem Namen Michael im Spalte Studentenname und extrahieren die entsprechenden Daten mit VBA bei dieser Methode.

Stufe-01 :

➤Folgen Stufe-01 von Methode-1

 Sub Extractdata() Dim lastusedrow As Long Dim i As Integer, icount As Integer lastusedrow = ActiveSheet.Range("B100").End(xlUp).Row For i = 1 To lastusedrow If InStr(1, Range("B" & i), "Michael")> 0 Then icount = icount + 1 Range("E" & icount & ":G" & icount) = Range("B" & i & ":D" & i).value End If Next i End Sub 

Hier habe ich verwendet B100 als die Aktiver Blattbereich Sie können jedoch jeden beliebigen Bereich für Ihre Zwecke verwenden.

InStr(1, Range("B" & i), "Michael")> 0 ist die Bedingung für die Prüfung, ob die Zelle in der Spalte B enthält Michael

Bereich("E" & icount & ":G" & icount) ist der Bereich, in dem Sie Ihre Ausgabedaten haben wollen, und Bereich("B" & i & ":D" & i).wert gibt die Werte der Spalten B zu D .

➤ Drücken F5

Ergebnis :

Danach erhalten Sie die folgenden extrahierten Daten für die Schüler, die den Namen Michael .

Methode-7: Suche nach Teilzeichenfolge für Wort

Wenn Sie die Teilzeichenkette als Wort finden möchten, gehen Sie wie folgt vor.

Stufe-01 :

➤Folgen Stufe-01 von Methode-1

 Sub Stringforword() Dim j As Integer j = InStr("Hier steht, was ich bin", "ist") If j = 0 Then MsgBox "Wort nicht gefunden" Else MsgBox "Wort gefunden an Position: " & j End If End Sub 

Es wird überprüft, ob die Zeichenkette enthält ist und dann wird seine Position angegeben

➤ Drücken F5

Ergebnis :

Danach erhalten Sie die folgende Meldung, in der die Wort gefunden in Position:6 (die Position von ist ).

Sie können diesen Code für ein Wort ausprobieren, das nicht in der Zeichenkette enthalten ist.

➤Geben Sie folgenden Code ein

 Sub Stringforword() Dim j As Integer j = InStr("Das ist, was ich bin", "sind") If j = 0 Then MsgBox "Wort nicht gefunden" Else MsgBox "Wort gefunden an Position: " & j End If End Sub 

➤ Drücken F5

Ergebnis :

Danach erhalten Sie die folgende Meldung, in der die Wort nicht gefunden .

Methode 8: Verwendung der Funktionen Instr und LEFT

Hier werde ich erklären, wie man die Position einer Teilzeichenkette in einer Zeichenkette findet und die Texte vor dieser Teilzeichenkette extrahiert, indem man VBA und die Funktion LEFT .

Stufe-01 :

➤Folgen Stufe-01 von Methode-1

 Sub InstrandLeft() Dim txt As String Dim j As Long txt = "Hier steht, was ich bin" j = InStr(txt, "ist") MsgBox Left(txt, j - 1) End Sub 

j = InStr(txt, "ist") ist die Position der Teilzeichenkette ist und Links(txt, j - 1) extrahiert die Teilzeichenfolgen vor ist .

➤ Drücken F5

Ergebnis :

Danach erhalten Sie die folgende Meldung, die Folgendes anzeigt Hier (Teilzeichenfolge vor ist ).

Methode 9: Unterstreichen einer bestimmten Teilzeichenkette in einer Zeichenkette

Sie können die Noten vor den Klammern in der Ergebnis-Spalte durch Anwendung dieser Methode.

Stufe-01 :

➤Folgen Stufe-01 von Methode-1

 Sub Boldingsubstring() Dim Cell As Range Dim txt As Integer For Each Cell In Selection txtCount = Len(Cell) txt = InStr(1, Cell, "(") Cell.Characters(1, txt - 1).Font.Bold = True Next Cell End Sub 

txt = InStr(1, Zelle, "(") gibt die Position der ersten Klammer zurück und Cell.Characters(1, txt - 1).Font.Bold macht die Teilzeichenkette vor der ersten Klammer Kühn .

Schritt-02 :

➤Wählen Sie die Ergebnis-Spalte

➤Go to Entwickler Tab>> Makros Option

Dann wird ein Makro Assistent erscheint.

➤Auswählen Fettgedruckter Teilstring (der VBA-Codename) und dann ausführen. .

Ergebnis :

Danach werden die Noten in der Ergebnis Säule werden fett gedruckt.

Praxisteil

Damit Sie selbst üben können, haben wir für Sie eine Praxis Abschnitt wie unten in einem Blatt namens Praxis Bitte tun Sie es selbst.

Schlussfolgerung

In diesem Artikel habe ich versucht, die einfachsten Möglichkeiten zum Auffinden von Teilzeichenfolgen mit VBA Ich hoffe, Sie finden es nützlich. Wenn Sie Anregungen oder Fragen haben, können Sie sie uns gerne mitteilen.

Hugh West ist ein äußerst erfahrener Excel-Trainer und -Analyst mit über 10 Jahren Erfahrung in der Branche. Er verfügt über einen Bachelor-Abschluss in Rechnungswesen und Finanzen sowie einen Master-Abschluss in Betriebswirtschaft. Hugh hat eine Leidenschaft für das Unterrichten und hat einen einzigartigen Lehransatz entwickelt, der leicht zu befolgen und zu verstehen ist. Seine Expertenkenntnisse in Excel haben Tausenden von Studenten und Berufstätigen auf der ganzen Welt geholfen, ihre Fähigkeiten zu verbessern und in ihrer Karriere herausragende Leistungen zu erbringen. Über seinen Blog teilt Hugh sein Wissen mit der Welt und bietet kostenlose Excel-Tutorials und Online-Schulungen an, um Einzelpersonen und Unternehmen dabei zu helfen, ihr volles Potenzial auszuschöpfen.