Mencari Data di VBA Excel Lebih Cepat dengan Metode Find

Semakin besar sebuah worksheet, semakin sulit menemukan data tertentu secara manual. Mencari kode produk, nama pelanggan, atau nomor transaksi satu per satu tentu akan menghabiskan waktu, terutama jika jumlah data sudah mencapai ratusan atau bahkan ribuan baris.

Untungnya, VBA Excel menyediakan metode Find yang memungkinkan Anda menemukan data secara otomatis tanpa perlu melakukan perulangan (For...Next) pada setiap sel. Selain lebih ringkas, metode ini juga lebih cepat ketika bekerja dengan data berukuran besar.


Mengenal Metode Find

Find adalah metode yang digunakan untuk mencari nilai tertentu pada sebuah range.

Sintaks dasarnya adalah:

Range("A:A").Find(What:="Laptop")

Kode tersebut akan mencari teks Laptop pada kolom A.

Jika data ditemukan, Find akan mengembalikan sebuah objek Range yang menunjuk ke lokasi data tersebut.


Menyimpan Hasil Pencarian ke Variabel

Karena hasil Find berupa objek Range, biasanya hasil pencarian disimpan ke dalam variabel.

Dim Hasil As Range

Set Hasil = Range("A:A").Find(What:="Laptop")

Jika data ditemukan, variabel Hasil akan berisi alamat sel yang sesuai.


Memeriksa Apakah Data Ditemukan

Sebelum menggunakan hasil pencarian, selalu lakukan pengecekan.

Dim Hasil As Range

Set Hasil = Range("A:A").Find("Laptop")

If Not Hasil Is Nothing Then
    MsgBox "Data ditemukan pada " & Hasil.Address
Else
    MsgBox "Data tidak ditemukan."
End If

Teknik ini penting untuk menghindari error ketika data yang dicari tidak tersedia.


Mencari Angka

Metode Find tidak hanya digunakan untuk teks, tetapi juga angka.

Dim Hasil As Range

Set Hasil = Range("C:C").Find(150000)

Kode tersebut akan mencari nilai 150000 pada kolom C.


Mengambil Data dari Baris yang Ditemukan

Misalkan kolom A berisi kode produk dan kolom B berisi nama produk.

AB
P001 Laptop
P002 Printer
P003 Scanner

Untuk mencari nama produk berdasarkan kode:

Dim Hasil As Range

Set Hasil = Range("A:A").Find("P002")

If Not Hasil Is Nothing Then
    MsgBox Hasil.Offset(0, 1).Value
End If

Hasil yang ditampilkan adalah:

Printer

Teknik ini sering digunakan untuk mengambil informasi dari kolom lain berdasarkan hasil pencarian.


Menggunakan Parameter LookAt

Secara default, Find dapat menemukan kecocokan sebagian (partial match).

Jika ingin mencari kata yang harus sama persis, gunakan parameter LookAt.

Set Hasil = Range("A:A").Find( _
    What:="Laptop", _
    LookAt:=xlWhole)

Nilai yang dapat digunakan:

ParameterFungsi
xlWhole Harus sama persis
xlPart Boleh mengandung sebagian teks

Menentukan Arah Pencarian

Anda juga dapat menentukan arah pencarian menggunakan SearchDirection.

Set Hasil = Range("A:A").Find( _
    What:="Laptop", _
    SearchDirection:=xlNext)

Pilihan yang tersedia:

  • xlNext → mencari ke arah berikutnya.

  • xlPrevious → mencari ke arah sebelumnya.


Studi Kasus

Sebuah worksheet menyimpan daftar pelanggan.

IDNamaKota
C001 Andi Bandung
C002 Budi Surabaya
C003 Citra Malang

Pengguna memasukkan ID pelanggan yang ingin dicari.

Dim Hasil As Range

Set Hasil = Range("A:A").Find("C002")

If Not Hasil Is Nothing Then
    MsgBox "Nama : " & Hasil.Offset(0, 1).Value
End If

Makro akan menampilkan nama pelanggan tanpa perlu melakukan perulangan pada seluruh data.


Kesalahan yang Sering Dilakukan

Tidak Memeriksa Nilai Nothing

Jika data tidak ditemukan, hasil Find adalah Nothing.

Mengakses properti seperti .Value atau .Address tanpa pengecekan akan menyebabkan Run-time Error.


Mengandalkan Pengaturan Default

Metode Find dapat menggunakan pengaturan pencarian terakhir yang dilakukan melalui fitur Find di Excel.

Untuk hasil yang konsisten, tentukan parameter penting seperti LookAt, LookIn, dan SearchOrder secara eksplisit.


Menggunakan Find pada Range yang Terlalu Luas

Jika hanya ingin mencari data pada satu kolom, batasi area pencarian.

Misalnya:

Range("A:A")

lebih efisien dibanding:

Cells

Tips Praktis

💡 Simpan hasil Find ke dalam variabel bertipe Range.

💡 Selalu gunakan If Not ... Is Nothing sebelum memproses hasil pencarian.

💡 Tentukan parameter LookAt agar hasil pencarian sesuai dengan kebutuhan.

💡 Gunakan Offset untuk mengambil data lain pada baris yang sama.

💡 Batasi area pencarian agar makro berjalan lebih cepat.


Ringkasan

MetodeFungsi
Find() Mencari data dalam sebuah range
What Menentukan nilai yang dicari
LookAt:=xlWhole Mencari kecocokan penuh
LookAt:=xlPart Mencari kecocokan sebagian
Offset() Mengambil data pada kolom atau baris lain
Address Menampilkan alamat sel hasil pencarian

Kesimpulan

Metode Find merupakan salah satu teknik paling efisien untuk mencari data dalam VBA Excel. Dibandingkan melakukan perulangan pada setiap sel, Find mampu menemukan data dengan lebih cepat dan menghasilkan kode yang lebih ringkas. Dengan memahami cara menggunakan parameter seperti LookAt, SearchDirection, dan melakukan pengecekan terhadap nilai Nothing, Anda dapat membangun fitur pencarian data yang lebih andal dalam berbagai proyek VBA.

Hubungi Kami

Kantor Berkreasi
Alamat :
Pens Sky Venture - Sukolilo Surabaya
Karangrejo Tmur 17 Surabaya

Email : kantor.berkreasi@gmail.com
WA : wa.me/6287761589881  
(Support  Mbak Ana)

Tim Pengembang

Dr. Rojabi Azharghany, M.Si, S.Sos
Dr. H. Agus Sulthoni Imami, S.Psi. M.Pd.I.
Ali Ishaq, M.Pd.
Didik Rahwiniyanto, S.Si., M.Pd.
Mujiburrohman, M.Pd.
Mohammad Zikky, S.ST, M.T
Amien sawedi, S.Pd.
Didik P Wicaksono, M.Pd.