Dalam menggunakan VBA seringkali kita harus mencari data tertentu dalam sebuah range di worksheet.
Jika kamu akan membuat sebuah sistem misalnya CRUD, fungsi FIND ini akan banyak sekali digunakan.
Misalnya untuk Read, Update dan Delete ini pasti memerlukan Fungsi FIND karena harus mencari data pada range area simpan.
Fungsi FIND adalah bagian dari VBA yang memungkinkan untuk melakukan pencarian data dalam cell atau range tertentu dalam lembar kerja Excel.
Fungsi ini mengembalikan Objek Range yang mengandung informasi tentang hasil pencarian, termasuk lokasi pertama ditemukannya data yang dicari.
Berikut adalah sintaksis dasar dari fungsi FIND dalam VBA:
rangeObj.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase)
Berikut ini adalah contoh bagaimana Fungsi FIND dapat digunakan dalam VBA:
Sub CariData() Dim hasil As Range Dim kataKunci As String kataKunci = "Andi Setiadi" ' Kata atau nilai yang ingin dicari ' Lakukan pencarian dalam sel A1:A10 di lembar aktif Set hasil = ActiveSheet.Range("A1:A10").Find(kataKunci, LookIn:=xlValues, LookAt:=xlWhole) ' Periksa apakah hasil ditemukan If Not hasil Is Nothing Then MsgBox "Data ditemukan di sel " & hasil.Address Else MsgBox "Data tidak ditemukan" End If End Sub
Pada contoh script diatas melakukan pencarian text “Andi Setiadi” pada range A1:A10, setelah ditemukan hasil akan langsung ditampilkan.
Dalam VBA Vlookup menggunakan FIND
vba.co.id
FindNext
adalah metode yang digunakan dalam VBA untuk melanjutkan pencarian setelah menggunakan metode Find
pertama kali.
Metode ini berguna untuk menemukan semua kata kunci yang cocok dari nilai yang dicari dalam range atau didalam worksheet.
Sub CariDanTemukanSemua() Dim kataKunci As String Dim Hasil As Range, AreaCari as Range Dim Awal As String ' Kata atau nilai yang ingin dicari kataKunci = "Andi Setiadi" ' Lakukan pencarian pertama dalam sel A1:A10 di lembar aktif Set AreaCari = ActiveSheet.Range("A1:A10") Set Hasil = AreaCari.Find(kataKunci, LookIn:=xlValues, LookAt:=xlWhole) ' Periksa apakah nilai ditemukan If Not Hasil Is Nothing Then ' Jika ditemukan, simpan alamat awal Awal = Hasil.Address ' Selama nilai masih ditemukan, teruskan mencari dengan FindNext Do ' Tampilkan alamat sel saat ini MsgBox "Data ditemukan di sel " & Hasil.Address ' Temukan sel berikutnya dengan nilai yang sama Set Hasil = AreaCari.FindNext(Hasil) ' Keluar dari loop jika kembali ke sel pertama Loop until Hasil.Address = Awal Else ' Jika nilai tidak ditemukan MsgBox "Data tidak ditemukan" End If End Sub
Thanks kang andi.. sangat bermanfaat