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