Fungsi VBA MID

Fungsi Excel VBA MID

Fungsi VBA MID mengekstrak nilai dari tengah kalimat atau kata yang disediakan. Fungsi MID dikategorikan di bawah fungsi String dan Teks dan ini adalah fungsi lembar kerja yang berarti untuk menggunakan fungsi ini di VBA kita perlu menggunakan metode application.worksheet.

Ada situasi di mana kita ingin mengekstrak nama depan, nama belakang atau nama tengah. Dalam situasi tersebut, rumus kategori TEXT sangat membantu untuk memenuhi persyaratan kami. Penggunaan fungsi ini sama dengan referensi lembar kerja dan sintaksnya juga sama.

Sintaksis

Seperti fungsi MID excel kami, di VBA juga memiliki sekumpulan nilai sintaks yang serupa. Di bawah ini adalah sintaksnya.

  • String to Search: Ini tidak lain adalah kalimat dari string yaitu dari string atau kata mana Anda ingin mengekstrak nilainya.
  • Posisi Awal: Dari posisi mana kalimat yang ingin Anda ekstrak. Ini harus berupa nilai numerik.
  • Jumlah Karakter untuk Diekstrak: Dari posisi awal, berapa banyak karakter yang ingin Anda ekstrak? Ini juga harus berupa nilai numerik.

Bagaimana cara menggunakan Fungsi VBA MID?

Anda dapat mendownload Template Fungsi VBA MID ini di sini - Template Fungsi VBA MID

Contoh 1

Asumsikan Anda memiliki kata "Halo Selamat Pagi" dan Anda ingin mengekstrak "Selamat" dari kalimat ini. Ikuti langkah-langkah di bawah ini untuk mengekstrak nilainya.

Langkah 1: Buat nama makro terlebih dahulu.

Kode:

 Sub MID_VBA_Example1 () End Sub 

Langkah 2: Deklarasikan variabel sebagai "STRING".

Kode:

 Sub MID_VBA_Example1 () Dim MiddleValue As String End Sub 

Langkah 3: Sekarang tetapkan nilai ke variabel ini melalui fungsi MID.

Kode:

 Sub MID_VBA_Example1 () Redupkan Nilai Tengah Sebagai String MiddleValue = Pertengahan (Sub Akhir 

Langkah 4: Argumen pertama adalah String yaitu dari nilai mana kita ingin mengekstrak. Jadi nilai kami adalah "Halo Selamat Pagi".

Kode:

 Sub MID_VBA_Example1 () Redupkan Nilai Tengah Sebagai String MiddleValue = Pertengahan ("Halo Selamat Pagi", End Sub 

Langkah 5: Selanjutnya adalah posisi awal karakter yang ingin Anda ekstrak. Dalam hal ini, Selamat pagi dimulai dari karakter ke-7.

Catatan: Spasi juga merupakan karakter.

Kode:

 Sub MID_VBA_Example1 () Redupkan Nilai Tengah Sebagai String MiddleValue = Pertengahan ("Halo Selamat Pagi", 7 Akhir Sub 

Langkah 6: Panjang tidak lain adalah berapa banyak karakter yang ingin Anda ekstrak. Kita perlu mengekstrak 4 karakter disini karena panjang kata “Good” adalah 4 karakter.

Kode:

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

Langkah 7: Kami telah menyelesaikan rumusnya. Mari tunjukkan hasil variabel di kotak pesan.

Kode:

 Sub MID_VBA_Example1 () Redupkan MiddleValue Sebagai String MiddleValue = Pertengahan ("Halo Selamat Pagi", 7, 4) MsgBox MiddleValue End Sub 

Langkah 8: Sekarang jalankan kode ini secara manual atau tekan tombol F5, kotak pesan akan menampilkan kata "Baik".

Keluaran:

Contoh # 2

Asumsikan Anda memiliki nama depan dan nama belakang bersama dan kata tersebut adalah “Ramesh, Tendulkar”. Di antara Nama Depan & Nama Belakang, karakter pemisah adalah koma (,). Sekarang kita hanya perlu mengekstrak nama depan saja.

Langkah 1: Buat makro dan tentukan variabel.

Kode:

 Sub MID_VBA_Example2 () Dim FirstName As String End Sub 

Langkah 2: Sekarang tetapkan nilai ke variabel ini melalui fungsi MID.

Kode:

 Sub MID_VBA_Example2 () Redupkan NamaDepan Sebagai String NamaDepan = Pertengahan (End Sub 

Langkah 3: String kami adalah "Ramesh.Tendulkar", jadi masukkan kata ini.

Kode:

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

Langkah 4: Karena kita mengekstrak nama depan, posisi awal adalah 1.

Kode:

 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.