Dalam VBA, Anda mungkin sudah terbiasa membandingkan dua nilai menggunakan operator sama dengan (
=).
Contohnya:
If Nama = "Andi" Then
Cara tersebut bekerja dengan baik jika teks yang dicari harus sama persis.
Namun, bagaimana jika Anda ingin:
-
mencari semua nama yang diawali huruf A;
-
memeriksa apakah sebuah kode terdiri dari tiga angka;
-
menemukan teks yang berakhiran .xlsx;
-
memvalidasi pola tertentu tanpa memeriksa setiap karakter satu per satu.
Untuk kebutuhan seperti ini, VBA menyediakan Like Operator.
Apa Itu Like Operator?
Like adalah operator yang digunakan untuk membandingkan sebuah teks dengan pola tertentu (pattern matching).
Berbeda dengan operator =, Like dapat menggunakan karakter khusus (wildcard) sehingga pencarian menjadi lebih fleksibel.
Sintaks dasarnya adalah:
If Teks Like Pola Then
'Kode
End If
Jika teks sesuai dengan pola yang ditentukan, hasilnya adalah True.
Wildcard yang Didukung Like
Berikut karakter khusus yang paling sering digunakan.
| Wildcard | Fungsi |
|---|---|
* |
Nol atau lebih karakter |
? |
Tepat satu karakter |
# |
Tepat satu angka |
[ ] |
Salah satu karakter dalam daftar |
[! ] |
Karakter selain yang ada dalam daftar |
Memahami wildcard ini adalah kunci penggunaan Like.
Menggunakan Tanda Bintang (*)
Wildcard * mewakili nol atau lebih karakter.
If "Andi" Like "A*" Then
MsgBox "Cocok"
End If
Karena teks diawali huruf A, hasilnya adalah True.
Contoh lain:
| Pola | Cocok Dengan |
|---|---|
A* |
Andi, Agus, Ahmad |
*Excel |
Belajar Excel |
*2026 |
Laporan2026 |
Menggunakan Tanda Tanya (?)
Wildcard ? mewakili tepat satu karakter.
If "AB1" Like "??#" Then
MsgBox "Valid"
End If
Artinya:
-
karakter pertama bebas,
-
karakter kedua bebas,
-
karakter ketiga harus angka.
Menggunakan Tanda Pagar (#)
Wildcard # hanya cocok dengan angka.
If "125" Like "###" Then
MsgBox "Tiga digit"
End If
Sedangkan:
12A
tidak akan cocok.
Menggunakan Daftar Karakter [ ]
Anda dapat menentukan pilihan karakter tertentu.
If "Budi" Like "[ABC]*" Then
MsgBox "Huruf awal sesuai"
End If
Artinya, huruf pertama harus A, B, atau C.
Menggunakan Negasi [! ]
Untuk mengecualikan karakter tertentu.
If "Zaki" Like "[!ABC]*" Then
MsgBox "Tidak diawali A, B, atau C"
End If
Studi Kasus
Misalkan kolom A berisi daftar kode pelanggan.
A-001
A-002
B-001
A-003
C-005
Anda hanya ingin memberi warna pada kode yang diawali huruf A.
Sub TandaiKode()
Dim Sel As Range
For Each Sel In Range("A2:A100")
If Sel.Value Like "A-*" Then
Sel.Interior.Color = vbYellow
End If
Next Sel
End Sub
Makro akan memberi warna hanya pada kode yang sesuai dengan pola.
Validasi Nomor Telepon
Misalkan nomor telepon harus terdiri dari sepuluh digit.
If Range("A2").Value Like "##########" Then
MsgBox "Nomor valid"
Else
MsgBox "Nomor tidak valid"
End If
Like vs Operator =
| Like | = |
|---|---|
| Mendukung wildcard | Harus sama persis |
| Cocok untuk pencarian pola | Cocok untuk perbandingan langsung |
| Lebih fleksibel | Lebih sederhana |
Jika Anda hanya ingin mengetahui apakah dua nilai sama, gunakan =.
Jika ingin mencocokkan pola tertentu, gunakan Like.
Like vs InStr
| Like | InStr |
|---|---|
| Mencocokkan pola | Mencari posisi teks |
| Mendukung wildcard | Tidak mendukung wildcard |
| Menghasilkan True atau False | Menghasilkan posisi karakter |
Gunakan Like jika fokusnya adalah apakah teks sesuai pola.
Gunakan InStr jika Anda ingin mengetahui di mana posisi suatu teks berada.
Kesalahan yang Sering Terjadi
Menggunakan = untuk Pola
Salah:
If Nama = "A*" Then
Kode tersebut tidak akan mencari semua nama yang diawali huruf A.
Yang benar:
If Nama Like "A*" Then
Salah Menggunakan Wildcard
Perhatikan perbedaannya.
#
berarti angka.
Sedangkan:
?
berarti satu karakter apa pun.
Mengira Like Tidak Peka Huruf Besar/Kecil
Hasil pencocokan dapat dipengaruhi oleh pengaturan Option Compare pada modul.
Jika aplikasi Anda memerlukan aturan tertentu mengenai huruf besar dan kecil, pastikan memahami pengaruh pengaturan tersebut sebelum menggunakan Like.
Tips Praktis
💡 Gunakan Like untuk validasi format kode, nomor, atau nama file.
💡 Manfaatkan wildcard * untuk mencari awalan atau akhiran teks.
💡 Gunakan # jika pola harus berupa angka.
💡 Gunakan [ ] untuk membatasi karakter yang diperbolehkan.
💡 Padukan Like dengan If...Then atau Select Case untuk membuat logika validasi yang lebih ringkas.
Ringkasan
| Wildcard | Fungsi |
|---|---|
* |
Nol atau lebih karakter |
? |
Satu karakter |
# |
Satu digit angka |
[ABC] |
Salah satu karakter dalam daftar |
[!ABC] |
Selain karakter dalam daftar |
Kesimpulan
Like merupakan operator yang sangat berguna ketika Anda perlu mencocokkan teks berdasarkan pola tertentu. Dengan dukungan berbagai wildcard seperti *, ?, #, dan [ ], Anda dapat membuat proses pencarian maupun validasi data menjadi lebih fleksibel dibandingkan menggunakan operator =. Menguasai Like akan membantu Anda menulis kode VBA yang lebih ringkas, mudah dipahami, dan mampu menangani berbagai variasi format data.
