SubString VBA Excel
SubString adalah bahagian dari rentetan atau bahagian atau watak rentetan disebut "SubString". Terdapat tiga jenis fungsi substring di VBA LEFT, RIGHT dan MID mereka serupa dengan substring lembaran kerja di excel.
Rentetan tidak lain adalah rangkaian watak dan watak yang boleh terdiri daripada huruf, angka, watak khas, dan juga menggabungkan semua ini.
Sering kali di excel ketika kita bekerja dengan data yang merupakan tali, kita hanya perlu mendapatkan bahagian rentetan untuk memudahkan tujuan kita. Kami mungkin tidak memerlukan rentetan penuh untuk digunakan tetapi kami hanya memerlukan bahagian rentetan untuk digunakan. Sebagai contoh, jika anda mempunyai nama "Sachin Tendulkar" anda mungkin hanya memerlukan bahagian pertama dari nama tersebut iaitu hanya "Sachin". Ini dipanggil sebagai SubString rentetan dalam Excel VBA. Untuk menangani rentetan ini, kita mempunyai fungsi terbina dalam fungsi TEXT dalam kategori excel.
Dalam artikel ini, kita akan membincangkan cara mendapatkan substring dari rentetan penuh di VBA.
Bagaimana Menggunakan Fungsi SubString di VBA?
Untuk mengekstrak substring dari rentetan, kami mempunyai beberapa fungsi teks terbina dalam dan beberapa fungsi penting adalah KIRI, KANAN, INSTR dan MID dalam excel. Fungsi Instr akan berfungsi sebagai fungsi sokongan untuk tiga fungsi yang lain.
Kami akan melihat bagaimana menggunakan fungsi ini untuk mengekstrak substring secara praktikal. Baca contoh di bawah untuk memahaminya.
Anda boleh memuat turun Templat VS SubString Excel ini di sini - Templat VBA SubString ExcelContoh # 1 - Menggunakan Fungsi Kiri
Sekiranya anda mempunyai nama lengkap sebagai "Sachin Tendulkar" dan anda hanya memerlukan nama pertama yang akan diekstrak sebagai substring gunakan kod berikut untuk mendapatkan yang sama.
Langkah 1: Buat nama makro dan tentukan dua pemboleh ubah sebagai String.
Kod:
Sub SubString_Contoh1 () Dim FullName Sebagai String Dim FirstName Sebagai String End Sub
Langkah 2: Sekarang tetapkan nama "Sachin Tendulkar" ke Nama Lengkap pemboleh ubah .
Kod:
Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" Akhir Sub
Langkah 3: Sekarang pemboleh ubah FullName memegang nilai "Sachin Tendulkar". Sekarang Kita perlu mengekstrak substring VBA excel dari nama pertama dari nama penuh. Jadi, tetapkan nilai untuk pemboleh ubah FirstName melalui fungsi LEFT.
Kod:
Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Kiri (Akhir Sub
Langkah 4: Argumen pertama fungsi VBA LEFT adalah String, itulah nilai penuh atau rentetan penuh. Dalam contoh ini, nilai penuh atau rentetan kami adalah "Sachin Tendulkar" yang diberikan kepada Nama Lengkap pemboleh ubah .
Jadi pemboleh ubah pembekalan FullName sebagai hujah.
Kod:
Sub SubString_Contoh1 () Dim FullName Sebagai String Dim FirstName Sebagai String FullName = "Sachin Tendulkar" FirstName = Kiri Akhir
Langkah 5: Argumen seterusnya adalah berapa banyak watak yang kita perlukan dari rentetan yang telah kita sediakan, jadi dalam kes ini, kita memerlukan nama pertama " Sachin " jadi secara total kita memerlukan 6 watak dari sebelah kiri.
Kod:
Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Kiri (Nama Penuh, 6) Sub Akhir
Langkah 6: Sekarang tunjukkan hasilnya di kotak mesej di VBA.
Kod:
Sub SubString_Example1 () Dim FullName As String Dim FirstName As String FullName = "Sachin Tendulkar" FirstName = Kiri (Nama Penuh, 6) MsgBox FirstName End Sub
Langkah 7: Jalankan makro melihat nama pertama sebagai substring di kotak mesej.
Contoh # 2 - Dapatkan SubString dari Kanan
Seperti bagaimana kita mengekstraksi substring dari kiri, kita juga boleh mengekstrak dari kanan. Ambil nama yang sama sebagai contoh.
Langkah 1: Tentukan dua pemboleh ubah sebagai String.
Kod:
Sub SubString_Contoh2 () Dim PenuhNama Sebagai Tali Dim DimakanNama Sebagai Rentetan Akhir Sub
Langkah 2: Seperti biasa berikan nilai pada Nama Lengkap pemboleh ubah sebagai "Sachin Tendulkar"
Kod:
Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" Akhir Sub
Langkah 3: Sekarang untuk pemboleh ubah nama belakang memberikan nilai melalui fungsi excel KANAN.
Kod:
Sub SubString_Example2 () Dim FullName Sebagai String Dim LastName Sebagai String FullName = "Sachin Tendulkar" LastName = Kanan (Sub Akhir
Langkah 4: String adalah Nama Penuh kami jadi berikan pemboleh ubah.
Kod:
Sub SubString_Example2 () Dim FullName Sebagai String Dim LastName Sebagai String FullName = "Sachin Tendulkar" LastName = Kanan (Nama Penuh, Sub Akhir
Langkah 5: Panjangnya ialah berapa banyak watak yang kita perlukan dari sebelah kanan, kita memerlukan 9 watak dari sebelah kanan.
Kod:
Sub SubString_Example2 () Dim FullName Sebagai String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Kanan (Nama Penuh, 9) Sub Akhir
Langkah 6: Tunjukkan nilai ini di kotak mesej .
Kod:
Sub SubString_Example2 () Dim FullName As String Dim LastName As String FullName = "Sachin Tendulkar" LastName = Right (FullName, 9) MsgBox LastName Akhir Sub
Langkah 7: Jalankan makro kita akan melihat nama terakhir di kotak mesej.
Contoh # 3 - Menggunakan Fungsi Instr
Dalam contoh di atas, kami hanya mempunyai satu nama dan kami telah membekalkan secara langsung berapa banyak watak yang kami perlukan dari kiri & kanan. Tetapi sekiranya banyak nama nama depan & nama belakang tidak sama, itu akan berbeza dari satu nama ke satu nama. Dalam kes tersebut, kita tidak dapat memberikan jumlah watak secara langsung sehingga kita dapat menggunakan fungsi Instr.
Fungsi Instr akan mengembalikan kedudukan watak yang disediakan dalam rentetan. Sebagai contoh lihat kod di bawah.
Kod:
Sub SubString_Contoh3 () Dim Posisi Sebagai 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.