VBA InStr - Top 5 Beispiele für die Verwendung der Excel VBA InStr-Funktion

Inhaltsverzeichnis

Excel VBA InStr-Funktion

Instr in VBA wird verwendet, um die Position eines bestimmten Teilstrings in einem String herauszufinden, nachdem wir die Vergleichsmethode für die Funktion angegeben haben. Es gibt vier verschiedene Vergleichsmethoden für diese Funktion. Instr ist eine String-Funktion, aber die von der Funktion zurückgegebene Ausgabe ist numerisch, sodass die Ausgabe dieser Funktion in einer ganzzahligen Variablen erfolgt.

Zeichenfolge in VBA ist nichts anderes als eine Reihe von Zeichen, dh alle Texte, die mit doppelten Anführungszeichen versehen sind, werden als Zeichenfolgen behandelt. Die InStr-Funktion ist eine integrierte Textfunktion zum Bearbeiten von Zeichenfolgen. Beispiel: Wenn Sie einen Teilstring aus einem Satz extrahieren möchten oder wenn Sie Änderungen am Schriftdesign auf eine bestimmte Zeichenfolge in einer Reihe von Zeichen anwenden möchten oder wenn Sie die Position eines Zeichens und viele andere Möglichkeiten ermitteln möchten, können Sie dies tun Verwenden Sie InStr.

Syntax

Es hat 4 Argumente, wie im folgenden Bild gezeigt.

  • (Start): Dies ist nicht obligatorisch. Dies ist der numerische Wert, den wir angeben müssen, ab welcher Position der Instr-Funktion der Zeichenfolge nach dem angegebenen Text zu suchen beginnt. Zum Beispiel: Wenn Sie das Zeichen suchen mögen „a“ in dem Wort „Bangalore“ von der 3 rd Position, müssen wir die Funktion INSTR Startposition als 3. So von 3 sagen rd Position, das Zeichen „a“ ist in der 5 th Position. Wenn Sie diesen Parameter ignorieren, ist der Standardwert 1.
  • Zeichenfolge 1: Dies ist die tatsächliche Zeichenfolge, die wir bereitstellen, dh anhand dieses Textes versuchen wir, die Teilzeichenfolge zu finden. Wenn Sie beispielsweise nach der Zeichenfolge "a" in "Bangalore" suchen, suchen Sie nach Zeichenfolge 1 in Bangalore.
  • String 2: Dies ist nichts anderes als der String, nach dem wir suchen. Wenn Sie beispielsweise in „Bangalore“ nach der Zeichenfolge „a“ suchen, ist Zeichenfolge 2 a .
  • (Vergleichen): Dies ist wieder ein optionales Argument. Im Argument (Vergleichen) stehen drei Arten von Optionen zur Verfügung.
  • vbBinaryCompare: Dies ist nichts anderes als eine Suche nach Groß- und Kleinschreibung der Teilzeichenfolge (Zeichenfolge 2) in Zeichenfolge 1. Wenn wir beispielsweise im Wort "Bangalore" nach "a" suchen , gibt Instr als Ergebnis 2 zurück, und wenn Sie Wenn Sie im Wort "Bangalore" nach "A" suchen , würde Instr als Ergebnis 0 zurückgeben, da die angegebene Zeichenfolge ein Wert in Großbuchstaben ist.

Wir können auch Null (0) als Argument setzen.

vbTextCompare: Dies ist keine Suche nach Groß- und Kleinschreibung für die Zeichenfolge 2 in Zeichenfolge 1. Wenn wir beispielsweise im Wort "Bangalore" nach "a" suchen , gibt Instr als Ergebnis 2 zurück, und wenn Sie nach "a" suchen. A “ im Wort „ Bangalore “ würde Instr ebenfalls 2 zurückgeben. Die Logik ist A = a, B = b, C = c usw.….

Wir können auch eins (1) als Argument verwenden.

vbDatabaseCompare: Hiermit werden die Informationen aus Ihrer Datenbank, dh der Microsoft Access-Datenbank, verglichen.

Wir können auch eins (-1) als Argument setzen.

Top 5 Beispiele für die Verwendung der VBA Instr-Funktion

Beispiel 1

Beginnen wir mit dem ersten Beispiel. Finden Sie im Wort Bangalore die Position des Zeichens a.

Der folgende Code führt die Aufgabe für uns aus.

Code:

Sub Instr_Example1 () Dim i als Variante i = InStr ("Bangalore", "a") MsgBox i End Sub

Führen Sie nun den oben angegebenen VBA-Code mit der Taste F5 aus, oder Sie können diesen Code auch manuell ausführen, wie im folgenden Screenshot gezeigt.

Ausgabe:

Beispiel 2

Suchen Sie nun im Wort Bangalore die Position des Zeichens "a" von der dritten Position.

Der folgende Code führt die Aufgabe für uns aus.

Code:

Sub Instr_Example2 () Dim i als Variante i = InStr (3, "Bangalore", "a") MsgBox i End Sub

Um den oben angegebenen Code auszuführen, können Sie die Taste F5 verwenden oder diesen Code auch manuell ausführen, wie im folgenden Screenshot gezeigt.

Ausgabe:

Sehen Sie sich nun im obigen Bild den Unterschied zum vorherigen Code an. Da wir die Ausgangsposition des Charakters als 3 erwähnt, ignoriert er das erste Zeichen „A“ in der 2 nd Position.

Beispiel 3

Jetzt sehen wir die Suche nach Groß- und Kleinschreibung. Finden Sie im Wort Bangalore den Buchstaben "A."

Dazu müssen wir das Argument compare als vbBinaryCompare angeben.

Code:

Sub Instr_Example3 () Dim i als Variante i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub

Führen Sie diesen Code jetzt mit der Taste F5 aus, oder Sie können diesen Code auch manuell ausführen.

Ausgabe:

Since we have supplied the compare argument as vbBinaryCompare Instr function returned the result as zero because there are no uppercase letter “A” exists.

Example #4

Now we will see one more case sensitive search. In the word Bangalore, find the letter “A.” The previous example returned the result as zero.

In order to overcome the case sensitive approach here, we need to supply the compare argument as vbTextCompare.

Code:

Sub Instr_Example4() Dim i As Variant i = InStr(1, "Bangalore", "A", vbTextCompare) MsgBox i End Sub

Now Run, this code using the F5 Key, or you can also run this code manually.

Output:

Example #5

Now we will see the advanced level of Instr function. If you have many sheets that have a more or less similar name and you want to hide all those sheets at once, we can use the below code to hide a specific sheet.

For example, I have 5 sheets named Summary 1, Summary 2, Summary 3, Summary 4, and Data Sheet.

Now I want to hide all those sheets which have the word “Summary.” Use the below code to hide all the sheets which have the word Summary in its name.

Code:

Sub To_Hide_Specific_Sheet() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If InStr(Ws.Name, "Summary")> 0 Then Ws.Visible = xlSheetVeryHidden End If Next Ws 'InStr function looks for word or phrase in the sheet name 'If it finds then it will be hidden End Sub

Now Run, this code using the F5 Key, or you can also run this code manually and see the Output.

Similarly, in order to unhide all those sheets, use the below code.

Code:

Sub To_UnHide_Specific_Sheet() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets If InStr(Ws.Name, "Summary")> 0 Then Ws.Visible = xlSheetVisible End If Next Ws 'InStr function looks for word or phrase in the sheet name 'If it finds then it will be hidden End Sub

Now Run, this code using the F5 Key, or you can also run this code manually and see the Output.

Things to Remember

  • Instr is a case sensitive function. In order to eliminate this case sensitive issue, you need to supply the (compare) argument as.
  • If you are searching for case sensitive character, you need to supply the (compare) argument as, by default, VBA takes this as the argument even if you do not supply.
  • Instr ist eine VBA-Funktion, sodass Sie sie nicht wie andere integrierte Formeln in einem Excel-Arbeitsblatt verwenden können.
  • Wenn die Funktion den String 2 nicht finden kann, ist das Ergebnis Null.

Interessante Beiträge...