Funcția VBA MID | Cum se utilizează funcția Excel VBA MID?

Funcția Excel VBA MID

Funcția VBA MID extrage valorile din mijlocul propoziției sau cuvântului furnizat. Funcția MID este clasificată sub funcția Șir și text și este o funcție de foaie de lucru, ceea ce înseamnă că pentru a utiliza această funcție în VBA, trebuie să folosim metoda application.worksheet.

Există situații în care dorim să extragem prenumele, prenumele sau prenumele. În aceste situații, formulele din categoria TEXT sunt utile pentru a ne îndeplini cerințele. Utilizarea acestei funcții este aceeași cu cea a referinței foii de lucru, iar sintaxa este, de asemenea, aceeași.

Sintaxă

La fel ca funcția noastră excel MID, și în VBA are un set similar de valori de sintaxă. Mai jos este sintaxa.

  • Șir de căutare: Aceasta nu este altceva decât ceea ce este propoziția șirului, adică din ce șir sau cuvânt doriți să extrageți valorile.
  • Poziția inițială: din ce poziție a propoziției doriți să extrageți. Aceasta ar trebui să fie o valoare numerică.
  • Număr de caractere de extras: Din poziția de pornire câte caractere doriți să extrageți? De asemenea, aceasta ar trebui să fie o valoare numerică.

Cum se utilizează funcția VBA MID?

Puteți descărca acest șablon de funcție VBA MID aici - Șablon de funcție VBA MID

Exemplul nr. 1

Să presupunem că aveți cuvântul „Bună dimineața” și doriți să extrageți „Bine” din această propoziție. Urmați pașii de mai jos pentru a extrage valoarea.

Pasul 1: Creați mai întâi un nume de macro.

Cod:

 Sub MID_VBA_Example1 () End Sub 

Pasul 2: declarați o variabilă ca „STRING”.

Cod:

 Sub MID_VBA_Example1 () Dim MiddleValue As String End Sub 

Pasul 3: Acum atribuiți o valoare acestei variabile prin funcția MID.

Cod:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid (End Sub 

Pasul 4: Primul argument este String, adică din ce valoare dorim să extragem. Deci, valoarea noastră este „Bună dimineața”.

Cod:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Bună dimineața", End Sub 

Pasul 5: Următorul este care este poziția inițială a personajului pe care doriți să îl extrageți. În acest caz, Bună dimineața începe de la un al 7-lea personaj.

Notă: Spațiul este, de asemenea, un personaj.

Cod:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Bună dimineața", 7 End Sub 

Pasul 6: Lungimea nu este altceva decât câte caractere doriți să extrageți. Trebuie să extragem 4 caractere aici, deoarece lungimea cuvântului „Bun” este de 4 caractere.

Cod:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Hello Good Morning", 7, 4) End Sub 

Pasul 7: Am finalizat formula. Să arătăm rezultatul variabilei în caseta de mesaj.

Cod:

 Sub MID_VBA_Example1 () Dim MiddleValue As String MiddleValue = Mid ("Bună dimineața", 7, 4) MsgBox MiddleValue End Sub 

Pasul 8: Acum executați manual acest cod sau apăsați tasta F5, în caseta de mesaj ar trebui să apară cuvântul „Bun”.

Ieșire:

Exemplul nr. 2

Să presupunem că aveți împreună un prenume și un nume, iar cuvântul este „Ramesh, Tendulkar”. Între prenume și prenume, caracterul de separare este o virgulă (,). Acum trebuie să extragem doar prenumele.

Pasul 1: Creați o macro și definiți o variabilă.

Cod:

 Sub MID_VBA_Example2 () Dim FirstName As String End Sub 

Pasul 2: Acum atribuiți o valoare acestei variabile prin funcția MID.

Cod:

 Sub MID_VBA_Example2 () Dim FirstName As String FirstName = Mid (End Sub 

Pasul 3: Șirul nostru este „Ramesh.Tendulkar”, așa că introduceți acest cuvânt.

Cod:

 Sub MID_VBA_Example2 () Dim FirstName As String FirstName = Mid ("Ramesh, Tendulkar", End Sub 

Pasul 4: Deoarece extragem prenumele, poziția inițială este 1.

Cod:

 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.