Fungsi MID VBA

Fungsi Excel VBA MID

Fungsi VBA MID mengekstrak nilai dari tengah ayat atau perkataan yang disediakan. Fungsi MID dikategorikan di bawah fungsi String dan Text dan ia adalah fungsi lembaran kerja yang bermaksud untuk menggunakan fungsi ini di VBA kita perlu menggunakan kaedah application.worksheet.

Terdapat situasi di mana kita mahu mengekstrak nama depan, nama belakang atau nama tengah. Dalam situasi tersebut, formula kategori TEKS sangat berguna untuk memenuhi keperluan kami. Penggunaan fungsi ini sama dengan rujukan lembaran kerja dan sintaksnya juga sama.

Sintaks

Seperti fungsi MID excel kami, di VBA juga mempunyai set nilai sintaks yang serupa. Berikut adalah sintaksnya.

  • String to Search: Ini tidak lain hanyalah kalimat rentetan iaitu dari rentetan atau perkataan yang anda ingin mengekstrak nilainya.
  • Posisi Permulaan: Dari kedudukan ayat mana yang ingin anda ekstrak. Ini mestilah nilai berangka.
  • Bilangan Karakter yang Diekstrak: Dari kedudukan permulaan berapa banyak watak yang ingin anda ekstrak? Ini juga harus berupa nilai berangka.

Bagaimana menggunakan Fungsi MID VBA?

Anda boleh memuat turun Templat Fungsi VBA MID ini di sini - Templat Fungsi MID VBA

Contoh # 1

Andaikan anda mempunyai perkataan "Hello Good Morning" dan anda mahu mengeluarkan "Good" dari ayat ini. Ikuti langkah di bawah untuk mengekstrak nilai.

Langkah 1: Buat nama makro terlebih dahulu.

Kod:

 Sub MID_VBA_Contoh1 () Sub Akhir 

Langkah 2: Menyatakan pemboleh ubah sebagai "STRING".

Kod:

 Sub MID_VBA_Contoh1 () Dim MiddleValue Sebagai String End Sub 

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

Kod:

 Sub MID_VBA_Contoh1 () Dim MiddleValue Sebagai String MiddleValue = Mid (End Sub 

Langkah 4: Hujah pertama ialah String iaitu dari nilai mana yang ingin kita ekstrak. Jadi nilai kami adalah "Hello Good Morning".

Kod:

 Sub MID_VBA_Contoh1 () Dim Middle Value Sebagai String MiddleValue = Mid ("Hello Good Morning", Sub End 

Langkah 5: Selanjutnya adalah kedudukan permulaan watak yang ingin anda ekstrak. Dalam kes ini, Selamat pagi bermula dari watak ke-7.

Catatan: Ruang juga watak.

Kod:

 Sub MID_VBA_Contoh1 () Dim MiddleValue Sebagai String MiddleValue = Mid ("Hello Good Morning", 7 End Sub 

Langkah 6: Panjangnya tidak lain adalah berapa banyak watak yang ingin anda ekstrak. Kita perlu mengekstrak 4 watak di sini kerana panjang perkataan "Baik" adalah 4 watak.

Kod:

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

Langkah 7: Kami telah menyelesaikan formula. Mari tunjukkan hasil pemboleh ubah di kotak mesej.

Kod:

 Sub MID_VBA_Contoh1 () Dim MiddleValue Sebagai String MiddleValue = Mid ("Hello Good Morning", 7, 4) MsgBox MiddleValue End Sub 

Langkah 8: Sekarang jalankan kod ini secara manual atau tekan kekunci F5, kotak mesej harus menunjukkan perkataan "Bagus".

Pengeluaran:

Contoh # 2

Andaikan anda mempunyai nama depan dan nama belakang bersama dan perkataannya adalah "Ramesh, Tendulkar". Antara Nama Depan & Nama Akhir, watak pemisah adalah koma (,). Sekarang kita perlu mengeluarkan nama pertama sahaja.

Langkah 1: Buat makro dan tentukan pemboleh ubah.

Kod:

 Sub MID_VBA_Contoh2 () Dim FirstName Sebagai String End Sub 

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

Kod:

 Sub MID_VBA_Contoh2 () Dim FirstName Sebagai String FirstName = Pertengahan (Sub Akhir 

Langkah 3: Rentetan kami adalah "Ramesh.Tendulkar", jadi masukkan perkataan ini.

Kod:

 Sub MID_VBA_Contoh2 () Dim FirstName Sebagai String FirstName = Mid ("Ramesh, Tendulkar", Sub End 

Langkah 4: Oleh kerana kita mengekstrak nama pertama, kedudukan permulaan adalah 1.

Kod:

 Sub MID_VBA_Contoh2 () Dim FirstName Sebagai String FirstName = Mid ("Ramesh, Tendulkar", 1, Sub Akhir 

Langkah 5: Panjang watak yang boleh anda masukkan secara langsung sebagai 6 tetapi ini bukan cara terbaik. Untuk menentukan panjang, mari gunakan satu formula lagi yang disebut Instr.

Kod:

 Sub MID_VBA_Contoh2 () Dim FirstName Sebagai String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (End Sub 

Langkah 6: Untuk kedudukan permulaan ini adalah 1.

Kod:

 Sub MID_VBA_Contoh2 () Dim FirstName Sebagai String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, End Sub 

Langkah 7: String 1 adalah nama kami iaitu "Ramesh, Tendulkar".

Kod:

 Sub MID_VBA_Contoh2 () Dim FirstName Sebagai String FirstName = Mid ("Ramesh, Tendulkar", 1, InStr (1, "Ramesh, Tendulkar", Sub Akhir 

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.