Saat membuat aplikasi VBA, kita tidak selalu bekerja dengan angka. Dalam banyak kasus, kita justru harus mengolah data berbentuk teks.
Misalnya:
-
memisahkan daftar nama yang dipisahkan tanda koma;
-
mengolah data hasil impor dari sistem lain;
-
membaca data CSV;
-
menggabungkan kembali beberapa teks menjadi satu kalimat.
Sebagian orang mencoba menyelesaikan pekerjaan tersebut menggunakan fungsi Left, Mid, atau Right. Cara tersebut memang dapat digunakan, tetapi akan menjadi rumit jika jumlah data cukup banyak.
VBA menyediakan dua fungsi sederhana yang sangat membantu untuk pekerjaan semacam ini, yaitu Split dan Join.
Apa Itu Split?
Split adalah fungsi VBA yang digunakan untuk memecah sebuah string menjadi beberapa bagian, kemudian menyimpannya ke dalam sebuah array.
Sintaks dasarnya adalah:
Split(Expression, Delimiter)
Keterangan:
-
Expression → teks yang akan dipisahkan.
-
Delimiter → karakter pemisah.
Hasil dari Split selalu berupa array.
Contoh 1 — Memisahkan Teks
Sub ContohSplit()
Dim Data() As String
Data = Split("Andi,Budi,Citra", ",")
Debug.Print Data(0)
Debug.Print Data(1)
Debug.Print Data(2)
End Sub
Hasilnya:
Andi
Budi
Citra
Setiap bagian teks disimpan pada indeks array yang berbeda.
Menggunakan Perulangan
Karena hasil Split berupa array, Anda dapat mengakses seluruh elemennya menggunakan perulangan.
Sub SplitLoop()
Dim Item
Dim Hasil
Hasil = Split("A,B,C,D,E", ",")
For Each Item In Hasil
Debug.Print Item
Next Item
End Sub
Menggunakan Delimiter Lain
Delimiter tidak harus berupa koma.
Misalnya menggunakan tanda pagar.
Dim Data
Data = Split("A#B#C#D", "#")
Atau menggunakan titik koma.
Data = Split("A;B;C", ";")
Apa Itu Join?
Jika Split memecah string menjadi array, maka Join melakukan kebalikannya.
Join digunakan untuk menggabungkan seluruh elemen array menjadi satu string.
Sintaksnya:
Join(Array, Delimiter)
Contoh 2 — Menggabungkan Array
Sub ContohJoin()
Dim Kota
Kota = Array("Jakarta", "Bandung", "Surabaya")
MsgBox Join(Kota, ", ")
End Sub
Hasilnya:
Jakarta, Bandung, Surabaya
Mengubah Delimiter
Anda bebas menentukan karakter penghubung.
Join(Kota, " | ")
Hasil:
Jakarta | Bandung | Surabaya
Split dan Join Bersama-sama
Kedua fungsi ini sering digunakan secara berpasangan.
Sub Gabungan()
Dim Nama
Nama = Split("Andi,Budi,Citra", ",")
MsgBox Join(Nama, " - ")
End Sub
Hasil:
Andi - Budi - Citra
Studi Kasus
Misalkan sebuah sel berisi data berikut.
Laptop,Mouse,Keyboard,Printer
Anda ingin menampilkan setiap item pada Immediate Window.
Sub DaftarBarang()
Dim Barang
Dim Item
Barang = Split(Range("A1").Value, ",")
For Each Item In Barang
Debug.Print Item
Next Item
End Sub
Sebaliknya, jika daftar barang berada dalam array dan ingin ditampilkan menjadi satu kalimat:
MsgBox Join(Barang, ", ")
Split vs TextToColumns
| Split | TextToColumns |
|---|---|
| Menghasilkan array | Menghasilkan beberapa kolom di worksheet |
| Tidak mengubah isi worksheet | Langsung mengubah data di worksheet |
| Cocok untuk pemrosesan di dalam kode | Cocok untuk mengolah data pada lembar kerja |
Jika data hanya perlu diproses oleh VBA, Split biasanya lebih efisien.
Kesalahan yang Sering Terjadi
Menganggap Hasil Split Berupa String
Salah:
Dim Nama As String
Nama = Split("A,B,C", ",")
Split menghasilkan array, sehingga variabel harus mampu menampung array.
Benar:
Dim Nama()
atau
Dim Nama As Variant
Mengakses Indeks yang Tidak Ada
Misalnya:
Split("A,B", ",")(3)
Kode tersebut akan menghasilkan Subscript out of range.
Menggunakan Join pada Variabel Biasa
Join hanya dapat digunakan pada array.
Tips Praktis
💡 Gunakan Split untuk memisahkan data hasil impor atau CSV.
💡 Gunakan Join untuk menggabungkan isi array menjadi satu string.
💡 Padukan Split dengan For Each untuk memproses setiap elemen.
💡 Gunakan delimiter yang sesuai dengan format data.
💡 Periksa jumlah elemen array sebelum mengakses indeks tertentu.
Ringkasan
| Fungsi | Kegunaan |
|---|---|
Split() |
Memecah string menjadi array |
Join() |
Menggabungkan array menjadi string |
Delimiter |
Karakter pemisah atau penghubung |
For Each |
Membaca setiap elemen hasil Split |
Kesimpulan
Split dan Join merupakan dua fungsi yang sangat berguna dalam pengolahan data teks di VBA Excel. Dengan Split, Anda dapat memecah sebuah string menjadi array sehingga setiap bagian dapat diproses secara terpisah. Sebaliknya, Join memungkinkan Anda menggabungkan kembali seluruh elemen array menjadi satu string. Memahami kedua fungsi ini akan mempermudah pengolahan data hasil impor, file CSV, maupun berbagai jenis teks yang menggunakan karakter pemisah.
