VBA-Mid-Funktion - Extrahieren von Zeichen aus der Mitte des Strings

Inhaltsverzeichnis

In diesem Tutorial wird gezeigt, wie Sie die Mid VBA-Funktion verwenden, um Zeichen aus der Mitte einer Textzeichenfolge zu extrahieren.

Mid-Funktion

Mid-Funktion Hole n Zeichen

Die VBA-Mid-Funktion gibt n Zeichen aus einer Zeichenfolge ab Position m zurück:

123456789 Sub MidBeispiel_1()MsgBox Mid("ABCDEFGHI", 4, 1) 'Ergebnis ist: "D"MsgBox Mid("ABCDEFGHI", 4, 2) 'Ergebnis ist: "DE"MsgBox Mid("ABCDEFGHI", 4, 50) 'Ergebnis ist: "DEFGHI"MsgBox Mid("ABCDEFG hI", 6, 1) 'Ergebnis ist: "F"MsgBox Mid("ABCDEFG hI", 6, 2) 'Ergebnis ist: "FG"MsgBox Mid("ABCDEFG hI", 6, 4) 'Ergebnis ist: "FG h"End Sub

Mid-Funktion Hole n Zeichen in einer Variablen

Wie oben gezeigt, können Sie eine Zeichenfolge einfach durch Eingabe von Text in Anführungszeichen definieren. Aber die MID-Funktion funktioniert auch mit String-Variablen. In diesen Beispielen werden n Zeichen aus einer Zeichenfolge ab Position m extrahiert.

12345678 Sub MidExample_2()Dim StrEx As String 'String-Variable definierenStrEx = "ABCDEFGHI"MsgBox Mid(StrEx, 2, 1) 'Ergebnis ist: "B"MsgBox Mid(StrEx, 2, 2) 'Ergebnis ist: "BC"MsgBox Mid(StrEx, 2, 50) 'Ergebnis ist: "BCDEFGHI"End Sub

Mid-Funktion Hole n Zeichen aus einer Zelle

Strings können in VBA-Code definiert werden, aber Sie können auch Werte aus Zellen verwenden. Lesen Sie den Wert einer Zelle, halten Sie ihn in einer String-Variablen und extrahieren Sie n Zeichen aus diesem Arbeitsblattzellenwert ab Position m.

1234567891011 Sub MidExample_3()Dim StrEx As String 'String-Variable definieren'Lesen Sie den Wert von Zelle A1 im Arbeitsblatt Sheet1StrEx = ThisWorkbook.Worksheets("Sheet1").Range("A1").Value'Für dieses Beispiel ist der Wert von Zelle A1 "Möge die Macht mit dir sein"MsgBox Mid(StrEx, 4, 6) 'Ergebnis ist: " das F" (Leerzeichen am Anfang beachten)MsgBox Mid(StrEx, 2, 8) 'Ergebnis ist: "ay the F"MsgBox Mid(StrEx, 3, 4) 'Ergebnis ist: "y th"End Sub

Mid-Funktion n Zeichen ersetzen

In den obigen Beispielen hat die Mid-Funktion die ursprüngliche Zeichenfolge nicht geändert. Es gab einen Teil davon zurück und ließ die ursprüngliche Zeichenfolge intakt. Mid Function kann verwendet werden, um Zeichen in einer Zeichenfolge zu ersetzen.

12345678910111213141516171819202122 Sub MidExample_4()Dim StrEx As String 'String-Variable definierenSub MidExample_4()Dim StrEx As String 'String-Variable definierenStrEx = "Möge die Macht mit dir sein"Mitte(StrEx, 5, 1) = "VWXYZ"MsgBox StrEx 'Ergebnis ist: "Möge Vhe Horce mit dir sein"'Mitte Funktion hat Position 5 gefunden und 1 Zeichen in der ursprünglichen Zeichenfolge ersetztStrEx = "Möge die Macht mit dir sein"Mitte(StrEx, 5, 3) = "VWXYZ"MsgBox StrEx 'Ergebnis ist: "Möge VWX Horce mit dir sein"'Mitte Funktion hat Position 5 gefunden und 3 Zeichen in der ursprünglichen Zeichenfolge ersetztStrEx = "Möge die Macht mit dir sein"Mitte(StrEx, 5, 8) = "VWXYZ"MsgBox StrEx 'Ergebnis ist: "Möge VWXYZorce mit dir sein"'Mid Function hat Position 5 gefunden und versucht, 8 Zeichen zu ersetzen.'"VWXYZ" hat nur 5 Zeichen, daher wurden nur 5 Zeichen ersetzt.End Sub

Mid Function Zweites Wort aus einer Phrase extrahieren

Wir können die VBA Mid-Funktion mit der VBA Instr-Funktion verwenden, um das zweite Wort in einem Text zu erhalten.

Die VBA InStr-Funktion kann die Position eines Zeichens im Text zurückgeben.

1 InStr("Zwei Wörter", " ") 'Ergebnis ist 4

Wir können InStr verwenden, um das erste Leerzeichen zu finden, dann können wir erneut InStr verwenden, um die Suche nach dem ersten Leerzeichen zu starten, um das zweite Leerzeichen im Text zu finden. Schließlich können wir die Mid-Funktion verwenden, um das Wort zu extrahieren, da wir die Startposition des zweiten Wortes und seine Länge (die Differenz zwischen den beiden Leerzeichenpositionen) kennen.

12345678910111213141516171819202122232425 Sub MidExample_5()Dim StrEx As String 'String-Variable definierenDim StartPos als IntegerDim EndPos als IntegerZweites Wort als String dimmenStrEx = "James Earl Jones ist ein Schauspieler"StartPos = InStr(StrEx, "")'Ergebnis ist 6'Finden Sie die Position des ersten LeerzeichensEndPos = InStr(StartPos + 1, StrEx, "")'Ergebnis ist 11'Finden Sie die Position des zweiten Leerzeichens, indem Sie die Suche nach dem ersten Leerzeichen startenSecondWord = Mid(StrEx, StartPos + 1, EndPos - StartPos - 1)'Mitte extrahiert die Zeichen, die nach dem ersten Leerzeichen beginnen (StartPos +1)'Mid verwendet auch die Länge des zweiten Wortes.'Das ist der Unterschied zwischen den Leerzeichenpositionen -1MsgBox SecondWord'Ergebnis ist EarlEnd Sub
wave wave wave wave wave