SubString VBA

Excel VBA SubString

SubString adalah bagian dari string atau porsi atau karakter dari string yang disebut “SubString”. Ada tiga jenis fungsi substring di VBA LEFT, RIGHT dan MID mereka mirip dengan substring worksheet di excel.

Sebuah string tidak lain adalah rangkaian karakter dan karakter bisa berupa huruf, angka, karakter khusus, dan juga menggabungkan semuanya.

Seringkali di excel ketika kita bekerja dengan data yang merupakan string kita hanya perlu mendapatkan porsi string untuk memfasilitasi tujuan kita. Kita mungkin tidak membutuhkan string lengkap untuk digunakan tetapi kita hanya membutuhkan bagian dari string untuk digunakan. Misalnya, jika Anda memiliki nama "Sachin Tendulkar", Anda mungkin hanya memerlukan bagian pertama dari nama tersebut, yaitu hanya "Sachin". Ini disebut sebagai SubString string di Excel VBA. Untuk menangani string ini, kami memiliki fungsi bawaan di bawah fungsi TEXT dalam kategori excel.

Pada artikel ini, kita akan membahas cara mendapatkan substring dari string lengkap di VBA.

Bagaimana Cara Menggunakan Fungsi SubString di VBA?

Untuk mengekstrak substring dari string kita memiliki beberapa fungsi teks built-in dan beberapa fungsi penting adalah LEFT, RIGHT, INSTR dan MID di excel. Fungsi Instr akan berfungsi sebagai fungsi pendukung untuk tiga fungsi lainnya.

Kita akan melihat bagaimana menggunakan fungsi ini untuk mengekstrak substring secara praktis. Baca contoh di bawah ini untuk memahaminya.

Anda dapat mendownload Template Excel SubString VBA ini di sini - Template Excel SubString VBA

Contoh # 1 - Menggunakan Fungsi Kiri

Jika Anda memiliki nama lengkap sebagai "Sachin Tendulkar" dan Anda hanya perlu nama depan yang akan diekstraksi sebagai substring, gunakan kode berikut untuk mendapatkan yang sama.

Langkah 1: Buat nama makro dan tentukan dua variabel sebagai String.

Kode:

 Sub SubString_Example1 () Redupkan FullName Sebagai String Dim FirstName As String End Sub 

Langkah 2: Sekarang tetapkan nama "Sachin Tendulkar" ke variabel FullName .

Kode:

 Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" End Sub 

Langkah 3: Sekarang variabel FullName memiliki nilai "Sachin Tendulkar". Sekarang kita perlu mengekstrak substring VBA excel dari nama depan dari nama lengkap. Jadi, tetapkan nilai untuk variabel FirstName melalui fungsi LEFT.

Kode:

 Sub SubString_Example1 () Redupkan FullName Sebagai String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Kiri (End Sub 

Langkah 4: Fungsi VBA LEFT argumen pertama adalah String, yaitu nilai penuh atau string penuh. Dalam contoh ini, nilai penuh atau string kita adalah "Sachin Tendulkar" yang ditetapkan ke variabel FullName.

Jadi berikan variabel FullName sebagai argumennya.

Kode:

 Sub SubString_Example1 () Redupkan FullName Sebagai String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Sub Ujung Kiri 

Langkah 5:  Argumen selanjutnya adalah berapa banyak karakter yang kita butuhkan dari string yang telah kita berikan, jadi dalam hal ini, kita membutuhkan nama depan “ Sachin ” jadi total kita membutuhkan 6 karakter dari sisi kiri.

Kode:

 Sub SubString_Example1 () Redupkan FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Left (FullName, 6) End Sub 

Langkah 6: Sekarang tunjukkan hasilnya di kotak pesan di VBA.

Kode:

 Sub SubString_Example1 () Redupkan FullName Sebagai String Redup Nama Depan Sebagai String FullName = "Sachin Tendulkar" FirstName = Kiri (FullName, 6) MsgBox FirstName End Sub 

Langkah 7: Jalankan makro, lihat nama depan sebagai substring di kotak pesan.

Contoh # 2 - Dapatkan SubString dari Kanan

Seperti bagaimana kami mengekstrak substring dari kiri, kami juga dapat mengekstrak dari kanan. Ambil nama yang sama sebagai contoh.

Langkah 1: Tentukan dua variabel sebagai String.

Kode:

 Sub SubString_Example2 () Redupkan Nama Lengkap Sebagai String Redupkan Nama Belakang Sebagai String Akhir Sub 

Langkah 2: Seperti biasa, tetapkan nilai ke variabel FullName sebagai "Sachin Tendulkar"

Kode:

 Sub SubString_Example2 () Redupkan Nama Penuh Sebagai String Redupkan Nama Belakang Sebagai String FullName = "Sachin Tendulkar" End Sub 

Langkah 3: Sekarang untuk variabel LastName, tetapkan nilai melalui fungsi excel KANAN.

Kode:

 Sub SubString_Example2 () Redupkan FullName Sebagai String Redupkan Nama Belakang Sebagai String FullName = "Sachin Tendulkar" LastName = Kanan (End Sub 

Langkah 4: String adalah Nama Lengkap kami, jadi berikan variabelnya.

Kode:

 Sub SubString_Example2 () Redupkan FullName As String Redupkan Nama Belakang Sebagai String FullName = "Sachin Tendulkar" LastName = Kanan (FullName, End Sub 

Langkah 5: Panjang adalah berapa banyak karakter yang kita butuhkan dari sisi kanan, kita membutuhkan 9 karakter dari sisi kanan.

Kode:

 Sub SubString_Example2 () Redupkan FullName Sebagai String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Kanan (FullName, 9) End Sub 

Langkah 6: Tunjukkan nilai ini di kotak pesan .

Kode:

 Sub SubString_Example2 () Redupkan FullName Sebagai String Redupkan Nama Belakang Sebagai String FullName = "Sachin Tendulkar" LastName = Kanan (FullName, 9) MsgBox LastName End Sub 

Langkah 7: Jalankan makro kita akan melihat nama terakhir di kotak pesan.

Contoh # 3 - Menggunakan Fungsi Instr

In the above examples, we had only one name and we have directly supplied how many characters we need from the left & right. But in case of many names first name & last name characters are not the same, it will differ from name to name. In those cases, we cannot supply the number of characters directly so we can use the function Instr.

Instr function will return the supplied character position in the string. For an example look at the below code.

Code:

 Sub SubString_Example3() Dim Position As String Position = InStr(1, "Sachin", "a") MsgBox Position End Sub 

InStr(1, “Sachin”, “a”) this will identify the position of the letter “a” as the first appearance in the string “Sachin”. In this case letter “a” is in the second position. So we will get 2 as the result in the message box.

Like this, we can use the Instr function to find the space character between the first name and last name.

For an example look at the below name I have in excel sheet.

Using LEFT, RIGHT, and Instr function we can extract the substrings. Below is the code to extract the First Name.

Code:

 Sub FirstName() Dim K As Long Dim LR As Long LR = Cells(Rows.Count, 1).End(xIUp).Row For K = 2 To LR Cells(K, 2).Value = Left(Cells(K, 1).Value, InStr(1, Cells(K, 1).Value, "") - 1) Next K End Sub 

Run the macro and see the first name as a substring in the message box.

Use below code to extract the last name as a substring.

Code:

 Sub LastName() Dim K As Long Dim LR As Long LR = Cells(Rows.Count, 1).End(xIUp).Row For K = 2 To LR Cells(K, 3).Value = Right(Cells(K, 1).Value, Len(Cells(K, 1)) - InStr(1, Cells(K, 1).Value, "")) Next K End Sub 

Run the macro and we will see the last name in the message box.

I have assigned the macro button to the worksheet, download the workbook, and use them.