Inhaltsverzeichnis
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 Inhalt9 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.