VBA InStr
Inhaltsverzeichnis
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 Ziel–Zeichenfolge 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 Vergleichs–Modus 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:
Name | Wert | Beschreibung |
---|---|---|
vbUseCompareOption | -1 | Der Vergleich wird mit der Option Compare-Anweisung ausgeführt. |
vbBinaryCompare | 0 | Wendet den binären Vergleich an |
vbTextCompare | 1 | Der Textvergleich wird verwendet |
vbDatabaseCompare | 2 | Nutzt den Microsoft Access Datenbankvergleich |
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.