VBA MID-Funktion

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 auch sie 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?

Sie können diese VBA MID-Funktionsvorlage hier herunterladen - VBA MID-Funktionsvorlage

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 der gute Morgen mit einem siebten Zeichen.

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 

Schritt 4: Da wir extrahieren, ist die Startposition des Vornamens 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 lets 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 the 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 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 below code would help you in this.

Code:

 Sub MID_VBA_Example3()     Dim   i   As Long For i = 2   To  15 Cells(i, 2).Value = Mid(Cells(i, 1).Value, 1, InStr(1, Cells(i, 1).Value, ",") - 1)     Next i End Sub 

Copy & Paste the above code in your module. After copying the code, run this code using the F5 key or you can run manually.

It should give the result like the below.

Things to Remember

  • Length argument in MID function is optional. If you ignore this it will take 1 as the default value.
  • In order to determine the length or starting position use Instr function along with MID function.