Funkcja Excel VBA MID
Funkcja VBA MID wyodrębnia wartości ze środka podanego zdania lub słowa. Funkcja MID jest podzielona na kategorie w ramach funkcji Ciąg i tekst i jest to funkcja arkusza, co oznacza, że aby użyć tej funkcji w VBA, musimy użyć metody application.worksheet.
Są sytuacje, w których chcemy wyodrębnić imię, nazwisko lub drugie imię. W takich sytuacjach formuły kategorii TEKST są pomocne w spełnieniu naszych wymagań. Użycie tej funkcji jest takie samo, jak w przypadku odwołania do arkusza, a składnia jest również taka sama.

Składnia
Podobnie jak nasza funkcja Excel w programie Excel, również w języku VBA ma podobny zestaw wartości składni. Poniżej znajduje się składnia.

- Ciąg do wyszukania: To nic innego jak zdanie ciągu, tj. Z którego ciągu lub słowa chcesz wyodrębnić wartości.
- Pozycja początkowa: z której pozycji zdania chcesz wyodrębnić. Powinna to być wartość liczbowa.
- Liczba znaków do wyodrębnienia: Ile znaków chcesz wyodrębnić z pozycji początkowej? Powinna to być również wartość liczbowa.
Jak korzystać z funkcji VBA MID?
Przykład 1
Załóżmy, że masz słowo „Hello Good Morning” i chcesz wyodrębnić „Good” z tego zdania. Wykonaj poniższe czynności, aby wyodrębnić wartość.
Krok 1: Najpierw utwórz nazwę makra.
Kod:
Sub MID_VBA_Example1 () End Sub

Krok 2: zadeklaruj zmienną jako „STRING”.
Kod:
Sub MID_VBA_Example1 () Dim MiddleValue As String End Sub

Krok 3: Teraz przypisz wartość do tej zmiennej za pomocą funkcji MID.
Kod:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid (End Sub

Krok 4: Pierwszym argumentem jest String, czyli wartość, z której chcemy wyodrębnić. Dlatego nasza wartość to „Hello Good Morning”.
Kod:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Witaj dzień dobry", End Sub

Krok 5: Następnie określ pozycję początkową postaci, którą chcesz wyodrębnić. W tym przypadku, Dzień dobry zaczyna się od 7 th znaków.
Uwaga: spacja to także postać.
Kod:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Witaj dzień dobry", 7 End Sub

Krok 6: Długość to nic innego jak liczba znaków, które chcesz wyodrębnić. Musimy tu wyodrębnić 4 znaki, ponieważ długość słowa „Good” wynosi 4 znaki.
Kod:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7, 4) End Sub

Krok 7: Uzupełniliśmy formułę. Pokażmy wynik zmiennej w oknie komunikatu.
Kod:
Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7, 4) MsgBox MiddleValue End Sub

Krok 8: Teraz uruchom ten kod ręcznie lub naciśnij klawisz F5, w oknie komunikatu powinno pojawić się słowo „Dobra”.

Wynik:

Przykład nr 2
Załóżmy, że macie razem imię i nazwisko, a słowo to „Ramesh, Tendulkar”. Między imieniem a nazwiskiem znakiem rozdzielającym jest przecinek (,). Teraz musimy wyodrębnić tylko imię.
Krok 1: Utwórz makro i zdefiniuj zmienną.
Kod:
Sub MID_VBA_Example2 () Dim FirstName As String End Sub

Krok 2: Teraz przypisz wartość do tej zmiennej za pomocą funkcji MID.
Kod:
Sub MID_VBA_Example2 () Dim FirstName As String FirstName = Mid (End Sub

Krok 3: Nasz ciąg to „Ramesh.Tendulkar”, więc wprowadź to słowo.
Kod:
Sub MID_VBA_Example2 () Dim FirstName As String FirstName = Mid ("Ramesh, Tendulkar", End Sub

Krok 4: Ponieważ wyodrębniamy pierwsze imię, pozycja początkowa to 1.
Kod:
Sub MID_VBA_Example2 () Dim FirstName As String FirstName = Mid ("Ramesh, Tendulkar", 1, End Sub

Krok 5: Długość znaku, który możesz wprowadzić bezpośrednio jako 6, ale nie jest to najlepszy sposób. Aby określić długość, zastosujmy jeszcze jedną formułę o nazwie Instr.
Kod:
Sub MID_VBA_Example2 () Dim FirstName As String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (End Sub

Krok 6: Dla tej pozycji początkowej 1.
Kod:
Sub MID_VBA_Example2 () Dim FirstName As String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, End Sub

Krok 7: Ciąg 1 to nasze imię, tj. „Ramesh, Tendulkar”.
Kod:
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 To 15 Cells (i, 2) .Value = Mid (Cells (i, 1) .Value, 1, InStr (1, Cells (i, 1) .Value, " , ”) - 1) Następny i End Sub
Skopiuj i wklej powyższy kod w swoim module. Po skopiowaniu kodu uruchom ten kod za pomocą klawisza F5 lub możesz uruchomić go ręcznie.

Powinien dać wynik taki jak poniżej.

Rzeczy do zapamiętania
- Argument długości w funkcji MID jest opcjonalny. Jeśli to zignorujesz, przyjmie 1 jako wartość domyślną.
- W celu określenia długości lub pozycji początkowej użyj funkcji Instr wraz z funkcją MID.