Prüfen, ob eine Zeichenkette eine Teilzeichenkette in VBA enthält

Glen Alfaro 30 Januar 2023
  1. Verwenden der Funktion Instr(), um zu prüfen, ob der Hauptstring einen Teilstring enthält
  2. Verwendung der Funktion InstrRev(), um zu prüfen, ob der Hauptstring einen Teilstring enthält
  3. Verwendung des Like-Operators, um zu prüfen, ob der Hauptstring einen Teilstring enthält
Prüfen, ob eine Zeichenkette eine Teilzeichenkette in VBA enthält

Dieser Artikel demonstriert die Verwendung der Funktionen Instr(), InstrRev() und Like, um zu prüfen, ob der Hauptstring einen Teilstring enthält.

Verwenden der Funktion Instr(), um zu prüfen, ob der Hauptstring einen Teilstring enthält

Instr() Funktionssyntax:

InStr([ start ], string1, string2, [ compare ])

Rückgabetyp: Ganzzahl

Parameter:

[ start ] Optional. Numerischer Wert, bei dem die Suche beginnt.
Für das Argument [ start ] finden Sie unten die entsprechenden Werte:
1 - [Standard] Die Suche beginnt am Anfang der Hauptzeichenfolge
n - Die Suche beginnt an der Position n.
string1 Verpflichtend. Der zu durchsuchende String (Hauptstring)
string2 Verpflichtend. Die zu suchende Zeichenfolge.
[ compare ] Optional. Legt fest, welche Zeichenkettenvergleichsmethode verwendet wird.
Für das Argument [ compare ] sind unten die entsprechenden Werte aufgeführt:
0 - [Standard] Binäre Vergleichsmethode (Groß-/Kleinschreibung beachten)
1 - Textvergleichsmethode (Groß-/Kleinschreibung wird nicht beachtet)

Der folgende Codeblock prüft mit der Funktion Instr(), ob eine Teilzeichenfolge in der Hauptzeichenfolge in VBA enthalten ist.

Function IsSubstring(pos as Integer, mainStr as String, subStr as String,compTyp as Integer) as boolean
    'if `Instr()` function returned 0 then the substring is not present in the main string.
    'If `Instr()` function returned a value greater than `0`, would mean that the substring is in the main string.
    If Instr(pos,mainStr,subStr,compTyp) >0 Then
        IsSubstring = true
        Else: IsSubstring = false
    End if
End Function
Sub test1()
    Debug.print IsSubstring(1,"ABCDE","C",1)
End Sub
Sub test2()
    Debug.print IsSubstring(1,"ABCDE","F",1)
End Sub
Sub test3()
    Debug.print IsSubstring(1,"ABCDE","c",0)
End Sub

Ausgang test1:

True

Ausgang test2:

False

Ausgang test3:

False

Der folgende Codeblock gibt die Position der Teilzeichenfolge aus der Hauptzeichenfolge mithilfe der Funktion Instr() zurück.

Function GetPosition(pos as Integer, mainStr as String, subStr as String,compTyp as Integer)
    'Check first if the substring is in the main string.
     If InStr(pos, mainStr, subStr, compTyp) > 0 Then
        'if substring is in the main string then get the position of the substring in the main string.
       GetPosition = InStr(1, mainStr, subStr, 1)
       Else: GetPosition = ("Subtring is not in the main string.")
   End If
End Function
Sub test1()
    'Check if `C` is in `ABCDE` starting at the first letter (A), case insensitive.
    Debug.Print GetPosition(1,"ABCDE", "C",1)
End Sub
Sub test2()
    'Check if `c` is in `ABCDE` starting at the first letter of the main string, case sensitive.
    Debug.Print GetPosition(1,"ABCDE", "c",0)
End Sub
Sub test3()
    'Check if `c` is in `ABCDE` starting at the fourth letter of the main string, case sensitive.
    Debug.Print GetPosition(4,"ABCDE", "c",0)
End Sub

Ausgang test1:

3

Ausgang test2:

Subtring is not in the main string.

Ausgang test3:

Subtring is not in the main string.

Verwendung der Funktion InstrRev(), um zu prüfen, ob der Hauptstring einen Teilstring enthält

InstrRev() Funktionssyntax:

InStrRev(string1, string2,[ start ], [ compare ])

Rückgabetyp: Ganzzahl

Parameter:

string1 Verpflichtend. Der zu durchsuchende String (Hauptstring)
string2 Verpflichtend. Die zu suchende Zeichenfolge.

Der folgende Codeblock prüft mit der Funktion InstrRev(), ob eine Teilzeichenfolge in der Hauptzeichenfolge in VBA enthalten ist.

Function IsSubstring(mainStr As String, subStr As String) As Boolean
    'if `InstrRev()` function returned 0 then the substring is not present in the main string.
    'If `InstrRev()` function returned a value greater than `0`, would mean that the substring is in the main string.
    If InStrRev(mainStr, subStr) > 0 Then
        IsSubstring = True
        Else: IsSubstring = False
    End If
End Function
Sub test1()
    Debug.Print IsSubstring("ABCDE", "C")
End Sub
Sub test2()
    Debug.Print IsSubstring("ABCDE", "F")
End Sub

Ausgang test1:

True

Ausgang test2:

False

Verwendung des Like-Operators, um zu prüfen, ob der Hauptstring einen Teilstring enthält

Syntax des Like-Operators:

res = string Like pattern

Rückgabetyp: Boolesch

Parameter:

res Verpflichtend. Rückgabewert in Boolean
string Verpflichtend. Die zu untersuchende Zeichenfolge
pattern Verpflichtend. Die Zeichenfolge, nach der gesucht werden soll. Siehe Bemerkungen für weitere Details

Bemerkungen:

? Jedes einzelne Zeichen
* Beliebige 0 bis viele Zeichen
# Jede einzelne Zahl (0 bis 9)

Der folgende Codeblock prüft, ob eine Teilzeichenfolge in der Hauptzeichenfolge in VBA mit dem Like-Operator enthalten ist

Function IsSubString(mainStr as String,subStr as String) as Boolean
    'Check if subStr is in the main string by using *
   If mainStr Like "*" & subStr & "*" Then
        IsSubString = True
        Else: IsSubstring= False
   End If
End Function
Sub test1()
    Debug.print (IsSubString("ABCDE","C"))
End Sub
Sub test2()
    Debug.print (IsSubString("ABCDE","c"))
End Sub
Sub test3()
    Debug.print (IsSubString("ABCDE","F"))
End Sub

Ausgang test1:

True

Ausgang test2:

False

Ausgang test3:

False

Verwandter Artikel - VBA String