Excel VBA MID-Funktion
Die VBA MID- Funktion extrahiert die Werte aus der Mitte des angegebenen Satzes oder Wortes. Die MID-Funktion ist unter der Funktion String and Text kategorisiert und eine Arbeitsblattfunktion. Um diese Funktion in VBA zu verwenden, müssen Sie die application.worksheet-Methode verwenden.
Es gibt Situationen, in denen wir den Vor-, Nach- oder Zweitnamen extrahieren möchten. In solchen Situationen sind TEXT-Kategorieformeln hilfreich, um unsere Anforderungen zu erfüllen. Die Verwendung dieser Funktion entspricht der der Arbeitsblattreferenz, und auch die Syntax ist dieselbe.

Syntax
Wie unsere Excel-MID-Funktion hat sie auch in VBA einen ähnlichen Satz von Syntaxwerten. Unten ist die Syntax.

- Zu suchende Zeichenfolge : Dies ist nichts anderes als der Satz der Zeichenfolge, dh aus welcher Zeichenfolge oder welchem Wort Sie die Werte extrahieren möchten.
- Startposition : Aus welcher Position des Satzes möchten Sie extrahieren. Dies sollte ein numerischer Wert sein.
- Anzahl der zu extrahierenden Zeichen : Wie viele Zeichen möchten Sie von der Startposition aus extrahieren? Dies sollte auch ein numerischer Wert sein.
Wie verwende ich die VBA MID-Funktion?
Beispiel 1
Angenommen, Sie haben das Wort „Hallo Guten Morgen“ und möchten aus diesem Satz „Gut“ extrahieren. Führen Sie die folgenden Schritte aus, um den Wert zu extrahieren.
Schritt 1: Erstellen Sie zuerst einen Makronamen.
Code:
Sub MID_VBA_Example1 () End Sub

Schritt 2: Deklarieren Sie eine Variable als "STRING".
Code:
Sub MID_VBA_Example1 () Dim MiddleValue As String End Sub

Schritt 3: Weisen Sie dieser Variablen nun über die MID-Funktion einen Wert zu.
Code:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid (End Sub

Schritt 4: Das erste Argument ist String, dh aus welchem Wert wir extrahieren möchten. Unser Wert ist also "Hallo Guten Morgen".
Code:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hallo Guten Morgen", End Sub

Schritt 5: Als nächstes sehen Sie die Startposition des Charakters, den Sie extrahieren möchten. In diesem Fall beginnt Guten Morgen von einem 7 th Charakter.
Hinweis: Leerzeichen ist auch ein Zeichen.
Code:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hallo Guten Morgen", 7 End Sub

Schritt 6: Die Länge ist nichts anderes als die Anzahl der Zeichen, die Sie extrahieren möchten. Wir müssen hier 4 Zeichen extrahieren, da das Wort "Gut" 4 Zeichen lang ist.
Code:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hallo Guten Morgen", 7, 4) End Sub

Schritt 7: Wir haben die Formel vervollständigt. Lassen Sie uns das Ergebnis der Variablen im Meldungsfeld anzeigen.
Code:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hallo Guten Morgen", 7, 4) MsgBox MiddleValue End Sub

Schritt 8: Führen Sie diesen Code nun manuell aus oder drücken Sie die Taste F5. Im Meldungsfeld sollte das Wort "Gut" angezeigt werden.

Ausgabe:

Beispiel 2
Angenommen, Sie haben einen Vor- und Nachnamen zusammen und das Wort lautet "Ramesh, Tendulkar". Zwischen Vor- und Nachname ist das Trennzeichen ein Komma (,). Jetzt müssen wir nur noch den Vornamen extrahieren.
Schritt 1: Erstellen Sie ein Makro und definieren Sie eine Variable.
Code:
Sub MID_VBA_Example2 () Dim FirstName As String End Sub

Schritt 2: Weisen Sie dieser Variablen nun über die MID-Funktion einen Wert zu.
Code:
Sub MID_VBA_Example2 () Dim FirstName As String FirstName = Mid (End Sub

Schritt 3: Unsere Zeichenfolge lautet "Ramesh.Tendulkar". Geben Sie also dieses Wort ein.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar", End Sub

Step 4: Since we are extracting the first name starting position is 1.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1, End Sub

Step 5: Length of the character you can directly enter as 6, but this is not the best way. In order to determine the length, let’s apply one more formula called Instr.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr( End Sub

Step 6: For this starting position is 1.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr(1, End Sub

Step 7: String 1 is our name, i.e., “Ramesh, Tendulkar.”
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr(1,"Ramesh,Tendulkar", End Sub

Step 8: String 2 what is the separator of first name & last name, i.e., comma (,).
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar",1,InStr(1,"Ramesh,Tendulkar",",") End Sub

Note: Instr function will return how many characters are there in the word “Ramesh, Tendulkar” from the string 1 position to the string 2 positions, i.e., until comma (,). So Instr will return 7 as a result, including comma (,).
Step 9: Since Instr function returns no., of characters including comma (,) we need to minus 1 character here. So enter -1 after the close of Instr function.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar", 1, InStr(1, "Ramesh,Tendulkar", ",") - 1) End Sub

Step 10: Now show the value of the variable in the message box.
Code:
Sub MID_VBA_Example2() Dim FirstName As String FirstName = Mid("Ramesh,Tendulkar", 1, InStr(1, "Ramesh,Tendulkar", ",") - 1) MsgBox FirstName End Sub

Step 11: Run this code using the F5 key, or you can run this code manually. We would get the first name in the message box.

Output:

Example #3
Now I will give you one assignment to solve. I have a list of First Name & Last Name.

From this list, I want you to extract the first name only. All the best!!!!.
Ok, If you have tried and not able to get the result, then the below code would help you in this.
Code:
Sub MID_VBA_Example3 () Dim i As Long For i = 2 bis 15 Zellen (i, 2) .Value = Mid (Zellen (i, 1) .Value, 1, InStr (1, Cells (i, 1) .Value, " , ") - 1) Weiter i End Sub
Kopieren Sie den obigen Code und fügen Sie ihn in Ihr Modul ein. Führen Sie diesen Code nach dem Kopieren des Codes mit der Taste F5 aus, oder Sie können ihn manuell ausführen.

Es sollte ein Ergebnis wie das folgende geben.

Dinge, an die man sich erinnern sollte
- Das Längenargument in der MID-Funktion ist optional. Wenn Sie dies ignorieren, wird 1 als Standardwert verwendet.
- Um die Länge oder Startposition zu bestimmen, verwenden Sie die Instr-Funktion zusammen mit der MID-Funktion.