VBA InStr

VBA InStr
VBA InStr

VBA InStr

Du möchtest die VBA InStr Funktion lernen und anwenden können und damit überprüfen, ob ein String innerhalb eines Anderen ist?

Dann freut es mich, Dir in diesem Beitrag die passende InStr-Funktion vorzustellen!

Eventuell hast Du zu einem späteren Zeitpunkt auch Interesse an einem der folgenden Beiträge: Excel VBA Array, InStr, Excel Range.

Tabellen-Arbeit – VBA InStr

Du bist in Excel VBA (Visual Basic for Applications) unterwegs und musst in einer Tabelle gewisse Prüfungen durchführen.

Durch einzelne Zellen navigierst Du, nimmst deren Wert entgegen und Du müsstest nun prüfen, ob sich dort ein gewisser Wert im String befindet?

Je nach deinem Ziel ist es mehr oder weniger von Wichtigkeit, an welcher genauen Position sich der String innerhalb des anderen Strings befindet.

Da wir in VBA die aus dem .NET bekannte Contains-Funktion, leider nicht verfügbar ist, müssen wir uns anders helfen.

Keine Panik, auch in VBA können wir uns wie fast immer mit gängigen Funktionen helfen, jedenfalls insofern Sie uns bekannt sind.

Strings durchforsten

Eine in VBA befindliche Funktion, Welche wir für unsere genannten Ziele verwenden können, ist die InStr-Funktion.

Die Funktion durchforstet die überlieferte Zeichenfolge und schaut, an Welcher Position Sie die ZielZeichenfolge finden kann.

Falls Sie die Zeichenfolge des Begehrens nicht finden kann, gibt Diese als Rückgabewert eine Zahl 0 zurück.

Für den Vergleich selbst, haben wir die Option, den VergleichsModus angeben zu können, wo wir letztendlich aus 4 Werten auswählen können.

Die VBA InStr Funktionalität

Bevor wir tiefer ins Geschehen huschen, schauen wir uns wie fast immer vorher einmal die Aufrufmöglichkeiten der Funktion an.

Parameterliste

[Optional] start [Integer]

Der start-Parameter spezifiziert die Position, ab der die Suche gestartet wird.

Da der Parameter als optional gekennzeichnet ist, wird bei Nicht-Angabe die Suche automatisch ab Anfang gestartet.

string1 [String]

Dieser String, ist sozusagen das Subjekt, also das „Ding“, worin gesucht wird.

string2 [String]

Hierbei handelt es sich sozusagen um die Nadel, die im Heuhaufen – oder Subjekt – gesucht werden soll.

[Optional] compare [Integer]

Mit diesem Parameter haben wir die Möglichkeit 1 der folgenden Vergleichs-Methoden zu konfigurieren:

NameWertBeschreibung
vbUseCompareOption-1Der Vergleich wird mit der Option Compare-Anweisung ausgeführt.
vbBinaryCompare0Wendet den binären Vergleich an
vbTextCompare1Der Textvergleich wird verwendet
vbDatabaseCompare2Nutzt den Microsoft Access Datenbankvergleich
VBA InStr Compare Optionen

Wenn man diesen Parameter überspringt, wird die binäre Vergleichs-Methode verwendet.

Ich denke die für uns relevanten Vergleichs-Arten sind: vbBinaryCompare & vbTextCompare.

Der binäre Vergleich, also die vbBinaryCompare Option gibt an, dass die Zeichen exakt übereinstimmen müssen.

Die Option vbTextCompare hingegen nutzt den textbasierten Vergleich, dabei spielen Groß– und Kleinschreibung keine Rolle.

Code – VBA InStr

In diesem Abschnitt schauen wir uns Beispiele an:

Dim text
text = "Excel is a great tool!"
Dim needle
needle = "great"
Dim result
result = InStr(1, text, needle)
MsgBox(result)

Zuerst deklarieren wir eine Variable „text“ und weisen ihr danach den Wert „Excel is a great tool!“ zu, dies bildet unseren zu durchsuchenden Text.

Danach kommt ein weiterer String namens „needle“ hinzu, Welche im wahrsten Sinne des Wortes unsere Nadel im Heuhaufen darstellt.

Danach speichern wir das Ergebnis unserer Suche in der „result“-Variable zwischen und geben Dieses aus!

Wenn Du das Beispiel ausführst, bekommst Du den Wert 12“ angezeigt, da sich unser gesuchtes Wort „great“ an der 12 Position im String befindet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.