Daftar Isi
Saat bekerja dengan VBA Dalam Excel, kita sering kali harus menggabungkan string (s) dan variabel (s) dalam lembar kerja. Menggabungkan string (s) dan variabel (s) banyak digunakan di hampir semua sektor dalam pekerjaan kita, mulai dari merangkum hasil siswa hingga menganalisis bisnis yang kompleks. Pada artikel ini, saya akan menunjukkan kepada Anda bagaimana Anda dapat menggabungkan string (s) dan variabel (s) dalam lembar kerja dengan VBA Saya akan menjelaskan hal-hal dengan contoh dan ilustrasi yang tepat.
Gabungkan String (s) dan Variabel (s) di Excel VBA (Tampilan Cepat)
Unduh Buku Kerja Praktik
Unduh buku kerja latihan ini untuk latihan saat Anda membaca artikel ini.
Menggabungkan String dan Variabel.xlsmGabungkan String (s) dan Variabel (s) di Excel VBA (Analisis Langkah demi Langkah)
Pertama-tama, mari kita lihat bagaimana kita bisa menggabungkan string (s) dan variabel (s) dalam VBA langkah demi langkah.
⧪ Menggabungkan String (s):
Untuk menggabungkan dua atau lebih string dalam VBA , Anda bisa menggunakan kedua aritmetika penambahan (+) simbol dan ampersand (& ) simbol.
Contohnya, untuk menggabungkan string-string "Harapan Besar" dan "Kisah Dua Kota" dengan koma Anda bisa menggunakan:
New_String = "Ekspektasi Besar" + ", " + "Kisah Dua Kota"
Atau,
New_String = "Great Expectations" & ", " & "A Tale of Two Cities"
Jalankan salah satu kode di atas. Ini akan menampilkan output gabungan, Harapan Besar, Kisah Dua Kota .
⧪ Variabel Penggabungan (s)
Jika semua variabel mengandung nilai string, maka Anda bisa menggunakan kedua aritmetika penambahan (+) simbol dan ampersand (&) simbol.
Tetapi, jika tidak, maka Anda hanya bisa menggunakan ampersand (&) simbol untuk digabungkan.
Misalnya, Mari kita memiliki dua variabel, A dan B .
A berisi string, "Kisah Dua Kota" dan B berisi string lain, "Empat Puluh Aturan Cinta" .
Anda bisa menggunakan kedua penambahan (+) simbol dan ampersand (&) untuk menggabungkannya.
A = "Kisah Dua Kota" B = "Empat Puluh Aturan Cinta" New_String = A + ", " + B
Atau,
A = "Kisah Dua Kota" B = "Empat Puluh Aturan Cinta" New_String = A & ", " & B
Dalam kedua kasus tersebut, mereka akan mengembalikan string yang digabungkan.
Tetapi jika A adalah sebuah string ( "Kisah Dua Kota" ) dan B adalah bilangan bulat ( 27 ), Anda harus menggunakan ampersand (&) simbol untuk digabungkan.
A = "Kisah Dua Kota" B = 27 New_String = A & ", " & B
Ini akan mengembalikan output yang digabungkan.
Contoh untuk Menggabungkan String dan Variabel di Excel VBA (Melibatkan Makro, UDF, dan UserForm)
Kita telah belajar untuk menggabungkan string (s) dan variabel (s) dengan VBA Kali ini kita akan mengeksplorasi beberapa contoh yang melibatkan penggabungan string (s) dan variabel (s) dengan VBA .
Contoh 1: Mengembangkan Makro untuk Menggabungkan string (s) dan variabel (s) di Excel VBA
Kita telah belajar untuk menggabungkan string dan variabel dengan VBA Kali ini kita akan mengembangkan Makro untuk menggabungkan string dan variabel dari beberapa kolom dalam lembar kerja.
Di sini kita punya set data dengan nama buku , penulis dan harga beberapa buku dari toko buku bernama Martin Bookstore.
Mari kita kembangkan Makro untuk menggabungkan kolom 1, 2, dan 3 dari kumpulan data B4:D14 di dalam sel F4 .
The VBA kode akan menjadi:
⧭ Kode VBA:
Sub Concatenate_String_and_Variable() Dim Rng As Range Set Rng = Range("B4:D14") Dim Kolom_Bilangan() As Varian Kolom_Bilangan = Array(1, 2, 3) Separator = ", " Output_Cell = "F4" For i = 1 To Rng.Rows.Count Output = "" For j = LBound(Kolom_Bilangan) To UBound(Kolom_Bilangan If j UBound(Kolom_Bilangan) Then Output = Output & Rng.Cells(i, Int(Kolom_Bilangan(j)))& Separator Else Output = Output & Rng.Cells(i, Int(Column_Numbers(j)))) End If Next j Range(Output_Cell).Cells(i, 1) = Output Next i End Sub
⧭ Keluaran:
Jalankan kode ini. Anda akan mendapatkan 3 kolom yang digabungkan dalam rentang F4:F14.
Baca Lebih Lanjut: Makro untuk Menggabungkan Beberapa Kolom di Excel (dengan UDF dan UserForm)
Contoh 2: Membuat Fungsi Buatan Pengguna untuk Menggabungkan string (s) dan variabel (s) di Excel VBA
Kami telah belajar untuk mengembangkan Makro untuk menggabungkan beberapa kolom dari sebuah set data. Kali ini kita akan membuat sebuah Fungsi yang Ditentukan Pengguna untuk menggabungkan string atau variabel di Excel.
Lengkap VBA kode akan menjadi:
⧭ Kode VBA:
Function ConcatenateValues(Value1, Value2, Separator) If VarType(Value1) 8204 And VarType(Value2) 8204 Then ConcatenateValues = Value1 & Separator & Value2 ElseIf VarType(Value1) = 8204 And VarType(Value2) 8204 Then Dim Output1() As Variant ReDim Output1(Value1.Rows.Count - 1, 0) For i = 1 To Value1.Rows.Count Output1(i - 1, 0) = Value1.Cells(i, 1) &Separator & Value2 Next i ConcatenateValues = Output1 ElseIf VarType(Value1) = 8204 And VarType(Value2) = 8204 Then Dim Output2() As Variant ReDim Output2(Value1.Rows.Count - 1, 0) For i = 1 To Value1.Rows.Count Output2(i - 1, 0) = Value1.Cells(i, 1) & Separator & Value2.Cells(i, 1) Next i ConcatenateValues = Output2 End If End Function
⧭ Keluaran:
Pilih kolom tempat Anda ingin menggabungkan rentang dan masukkan rumus ini:
=ConcatenateValues("Dia", "H. Rider Haggard",", ")
Ini akan kembali Dia, H. Rider Haggard sebagai output.
Sekali lagi, masukkan rumusnya:
=ConcatenateValues(B4:B14,30,", ")
[ Rumus Larik Jadi jangan lupa untuk menekan CTRL + SHIFT + ENTER kecuali Anda berada di Kantor 365 .]
Ini akan menggabungkan 30 dengan semua nilai kisaran B4:B14 .
Terakhir, masukkan:
=ConcatenateValues(B4:B14,C4:C14,", ")
[Lagi Rumus Larik Jadi jangan lupa untuk menekan CTRL + SHIFT + ENTER kecuali Anda berada di Kantor 365 .]
Ini akan menggabungkan semua nilai dari rentang B4:B14 dengan orang-orang dari C4:C14 .
Baca Juga: Cara Menggabungkan di Excel (3 Cara yang Cocok)
Bacaan serupa:
- Cara Menggabungkan Teks dari Dua Sel atau Lebih ke dalam Satu Sel di Excel (5 Metode)
- Gabungkan Baris menjadi Satu Sel di Excel
- Gabungkan Angka di Excel (4 Rumus Cepat)
- Gabungkan Teks di Excel (8 Cara yang Cocok)
- Cara Menggabungkan Apostrof di Excel (6 Cara Mudah)
Contoh 3: Mengembangkan UserForm untuk Menggabungkan string (s) dan variabel (s) di Lembar Kerja yang Berbeda di Excel VBA
Kami telah belajar untuk mengembangkan Makro dan Fungsi yang Ditentukan Pengguna untuk menggabungkan string dan nilai. Akhirnya, kita akan mengembangkan sebuah UserForm untuk menggabungkan string dan nilai ke lokasi yang diinginkan dari lembar kerja yang diinginkan.
⧪ Langkah 1: Memasukkan UserForm
Pergi ke Sisipkan> UserForm opsi di dalam VBA bilah alat untuk menyisipkan UserForm .
⧪ Langkah 2: Menyeret Alat ke UserForm
A UserForm disebut UserForm1 akan dibuka, bersama dengan Kotak Alat disebut Kontrol .
Gerakkan mouse Anda ke atas e Toolbox dan seret 2 ListBox, 5 TextBox, 7 Label dan1 CommanButtons di UserForm .
Mengubah tampilan dari Label seperti ditunjukkan dalam gambar.
Demikian pula, mengubah tampilan CommandButton untuk OK .
⧪ Langkah 3: Menulis Kode untuk TextBox1
Klik dua kali pada TextBox1 . A Subprosedur Pribadi disebut TextBox1_Change akan terbuka. Masukkan kode berikut di sana.
Private Sub TextBox1_Change() On Error GoTo Task Range(UserForm1.TextBox1.Text).Select UserForm1.ListBox1.Clear For i = 1 To Range(UserForm1.TextBox1.Text).Columns.Count UserForm1.ListBox1.AddItem Range(UserForm1.TextBox1.Text).Cells(1, i) Next i Exit Sub Task: x = 5 End Sub
⧪ Langkah 4: Menulis Kode untuk TextBox3
Demikian pula, klik dua kali pada TextBox3 . lain Subprosedur Pribadi disebut TextBox3_Change akan terbuka. Masukkan kode berikut di sana.
Private Sub TextBox3_Change() On Error GoTo Task Starting_Cell = UserForm1.TextBox3.Text For i = 1 To Len(Starting_Cell) If Asc(Mid(Starting_Cell, i, 1))>= 48 And Asc(Mid(Starting_Cell, i, 1)) <= 57 Then Col = Left(Starting_Cell, i - 1) Row = Right(Starting_Cell, Len(Starting_Cell) - i + 1) End_Range = Col + Right(Str(Int(Row) +Range(UserForm1.TextBox1.Text).Rows.Count - 1), Len(Str(Str(Int(Row) + 10))) - 1) Set Rng = Range(Starting_Cell + ":" + End_Range) Rng.Select Exit For End If Next i Rng.Cells(1, 1) = UserForm1.TextBox4.Text Exit Sub Task: x = 5 End Sub
⧪ Langkah 5: Menulis Kode untuk TextBox4
Juga, klik dua kali pada TextBox3 . lain Subprosedur Pribadi disebut TextBox3_Change akan terbuka. Masukkan kode berikut di sana.
Private Sub TextBox4_Change() If UserForm1.TextBox3.Text "" Then Selection.Cells(1, 1) = UserForm1.TextBox4.Text End If End Sub
⧪ Langkah 6: Menulis kode untuk ListBox2
Kemudian klik dua kali pada ListBox2 Ketika Subprosedur Pribadi disebut ListBox2_Click terbuka, masukkan kode ini di sana.
Private Sub ListBox2_Click() Reserved_Address = Selection.Address For i = 0 To UserForm1.ListBox2.ListCount - 1 If UserForm1.ListBox2.Selected(i) = True Then Worksheets(UserForm1.ListBox2.List(i)).Activate Range(Reserved_Address).Select Exit For End If Next i If UserForm1.TextBox3.Text "" Then Selection.Cells(1, 1) = UserForm1.TextBox4.Text End If End Sub
⧪ Langkah 7: Menulis kode untuk CommanButton1
Juga, klik dua kali pada CommandButton1 Setelah Subprosedur Pribadi disebut CommandButton1_Change terbuka, masukkan kode berikut di sana.
Private Sub CommandButton1_Click() On Error GoTo Message Dim Rng As Range Set Rng = Worksheets(UserForm1.TextBox5.Text).Range(UserForm1.TextBox1.Text) Dim Column_Numbers() As Variant Count = 0 For i = 0 To UserForm1.ListBox1.ListCount - 1 If UserForm1.ListBox1.Selected(i) = True Then ReDim Preserve Column_Numbers(Count) Column_Numbers(Count) = i + 1 Count = Count + 1End If Next i Separator = UserForm1.TextBox2.Text Output_Cell = UserForm1.TextBox3.Text For i = 0 To UserForm1.ListBox2.ListCount-1 If UserForm1.ListBox2.Selected(i) = True Then Sheet_Name = UserForm1.ListBox2.List(i) Exit For End If Next i Worksheets(Sheet_Name).Range(Output_Cell).Cells(1, 1) = UserForm1.TextBox4.Text For i = 2 To Rng.Rows.Count Output = "" For j= LBound(Column_Numbers) To UBound(Column_Numbers) If j UBound(Column_Numbers) Then Output = Output & Rng.Cells(i, Int(Column_Numbers(j)))) & Separator Else Output = Output & Rng.Cells(i, Int(Column_Numbers(j)))) End If Next j Worksheets(Sheet_Name).Range(Output_Cell).Cells(i, 1) = Output Next i Unload UserForm1 Exit Sub Message:MsgBox "Pilih Semua Pilihan dengan Benar.", vbExclamation End Sub
⧪ Langkah 7: Menulis kode untuk menjalankan UserForm
Sekarang adalah langkah terakhir. Modul dari VBA toolbar dan masukkan kode berikut ini.
Sub Run_UserForm() UserForm1.Caption = "Concatenate Values" UserForm1.TextBox1.Text = Selection.Address UserForm1.TextBox5.Text = ActiveSheet.Name UserForm1.ListBox1.ListStyle = fmListStyleOption UserForm1.ListBox1.BorderStyle = fmBorderStyleSingle UserForm1.ListBox1.MultiSelect = fmMultiSelectMulti UserForm1.ListBox1.Clear For i = 1 To Selection.Columns.Count UserForm1.ListBox1.AddItemSelection.Cells(1, i) Next i UserForm1.ListBox2.ListStyle = fmListStyleOption UserForm1.ListBox2.BorderStyle = fmBorderStyleSingle For i = 1 To Sheets.Count UserForm1.ListBox2.AddItem Sheets(i).Name Next i Load UserForm1 UserForm1.Show End Sub
⧪ Langkah 8: Menjalankan UserForm
Anda UserForm sekarang siap untuk digunakan. Untuk menjalankannya, pilih kumpulan data dari lembar kerja (Termasuk Tajuk ) dan jalankan Makro disebut Run_UserForm .
The UserForm akan dimuat dengan semua opsi. Alamat jangkauan yang dipilih akan ditampilkan pada TextBox1 ( B3:D4 Jika Anda mau, Anda dapat mengubahnya. Rentang yang dipilih di lembar kerja akan berubah.
Pilih kolom-kolom yang ingin Anda gabungkan dari Kolom untuk Concat ListBox. Di sini saya telah memilih Nama Buku dan Harga .
Masukkan Pemisah Di sini saya telah memasuki koma ( , ).
Pilih nama lembar kerja di mana Anda ingin meletakkan rentang gabungan dari Digabungkan Dalam listbox. Di sini saya telah memasukkan Sheet3 .
(Pada saat Anda memilih sheet, sheet itu akan diaktifkan, meskipun bukan yang aktif).
Kemudian masukkan Lokasi Keluaran Ini adalah referensi sel dari sel pertama dari rentang gabungan. Di sini saya telah meletakkan B3 .
(Pada saat Anda memasuki Lokasi Keluaran , kisaran output akan dipilih).
Dan terakhir, masukkan nama Header Keluaran (Header dari Output Range). Di sini saya telah meletakkan Rentang Gabungan .
(Pada saat Anda menaruh Header Keluaran , tajuk kolom keluaran akan diatur.)
Klik OK Anda akan mendapatkan output yang diinginkan di lokasi yang diinginkan.
Baca Juga: Cara Menggabungkan String dan Integer menggunakan VBA
Kesimpulan
Jadi, ini adalah beberapa contoh di mana Anda bisa menggunakan Excel VBA untuk menggabungkan string dan variabel. Semoga contoh-contoh tersebut membuat semuanya cukup jelas bagi Anda. Apakah Anda memiliki pertanyaan? Jangan ragu untuk bertanya kepada kami. Dan jangan lupa untuk mengunjungi situs kami ExcelWIKI untuk lebih banyak postingan dan pembaruan.