Dieses Tutorial zeigt, wie Sie Platzhalter in VBA verwenden.
Wildcards werden in allen Programmiersprachen und Datenbankanwendungen wie SQL Server verwendet. Ein Platzhalter kann als Symbol definiert werden, das verwendet wird, um ein oder mehrere Zeichen in einer Textzeichenfolge zu ersetzen. Diese Textzeichenfolge – „mo*“ – findet zum Beispiel die Wörter Mama, Maus, Elch, Mama usw.; während diese Textzeichenfolge "mo?" findet nur das Wort Mama als Platzhalter? ersetzt nur ein Zeichen.
Wir verwenden Wildcards mit dem Like Operator, der eine einfachere Alternative zu VBA Regex ist.
Verwenden des Asterix (*)-Platzhalters in VBA
Der Asterix-Platzhalter ersetzt ein oder mehrere Zeichen in einem VBA-String.
Schauen wir uns den folgenden Zellbereich in Excel an:
Durch die Verwendung eines Asterix-Platzhalters in unserem VBA-Code können wir alle Vornamen finden, die mit „M“ beginnen, und die Farbe des Textes in Rot ändern.
12345678 | Unter CheckForM()Dim x As IntegerFür x = 3 bis 8If Range("B" & x).Wert wie "M*" ThenRange("B" & x).Font.Color = vbRedEnde WennNächstes xEnd Sub |
Wir haben daher den Bereich durchgeschleift und alle Vornamen gefunden, die mit dem Buchstaben M beginnen, da unser Platzhalterstring „“ ist.M*”
Das Ergebnis der Ausführung des obigen Codes wird unten angezeigt.
Wenn wir die Wildcard-Zeichenfolge „Ma*“ verwenden würden, würden sich nur die Vornamen in B3 und B4 ändern.
Verwenden des Fragezeichens (?) Platzhalters in VBA
Das Fragezeichen ersetzt ein einzelnes Zeichen in einer VBA-Zeichenfolge.
Betrachten Sie die folgenden Daten:
Wir können die Platzhalterzeichenfolge „?im“ verwenden, um alle Vornamen zu finden, die auf „im“ enden.
12345678 | Unter CheckForIM()Dim x As IntegerFür x = 3 bis 8If Range("B" & x).Value Like "?im" ThenRange("B" & x).Font.Color = vbRedEnde WennNächstes xEnd Sub |
Das Ergebnis der Ausführung dieses Codes wird unten angezeigt:
Verwenden von [char list] als Platzhalter
Das obige Beispiel kann leicht modifiziert werden, damit wir das Fragezeichen zusätzlich zu einer Zeichenliste der zulässigen Zeichen verwenden können. Die Wildcard-Zeichenfolge kann daher in „?[e-i]m“ geändert werden, wobei das erste Zeichen beliebig sein kann, das zweite Zeichen ein Zeichen zwischen e und i sein muss und der letzte Buchstabe das Zeichen „m“ sein muss. Es sind nur 3 Zeichen erlaubt.
12345678 | Sub CharListTest()Dim x As IntegerFür x = 3 bis 8If Range("B" & x).Value Like "?[e-i]m" ThenRange("B" & x).Font.Color = vbRedEnde WennNächstes xEnd Sub |
Das Ergebnis dieses Codes wäre:
VBA-Programmierung | Code Generator arbeitet für Sie!
Hash (#) Wildcard in VBA verwenden
Der Platzhalter Hash (#) ersetzt eine einzelne Ziffer in einem VBA-String. Wir können zwischen 0 und 9 abgleichen.
12345678910 | Unter CheckForNumber()Dim x als Integer, y als IntegerFür x = 3 bis 8Für y = 2 bis 5Wenn ActiveSheet.Cells(x, y) Like "##" ThenActiveSheet.Cells(x, y).Font.Color = vbRedEnde WennAls nächstesNächstes xEnd Sub |
Der obige Code durchläuft alle Zellen im Bereich ("B3:E8") und ändert die Farbe des Textes in einer Zelle in ROT, wenn in dieser Zelle eine zweistellige Zahl gefunden wird.
Im folgenden Beispiel ändert der Code die Zahl nur, wenn die letzte Zahl eine 9 ist.
12345678910 | Unter CheckFor9()Dim x als Integer, y als IntegerFür x = 3 bis 8Für y = 2 bis 5Wenn ActiveSheet.Cells(x, y) Like "#9" ThenActiveSheet.Cells(x, y).Font.Color = vbRedEnde WennAls nächstesNächstes xEnd Sub |