Editor Downcodes memberi Anda penjelasan rinci tentang kode pencarian nama VBA, mencakup tiga metode: metode Range.Find, loop traversal dan fungsi kustom, dan mencakup aplikasi tingkat lanjut dan FAQ untuk membantu Anda menguasai pencarian nama VBA di Excel Skill dengan cepat. Artikel ini akan memperkenalkan implementasi kode, kelebihan dan kekurangan masing-masing metode secara mendetail, dan memberikan solusi yang lebih komprehensif berdasarkan skenario aplikasi sebenarnya.

Untuk menulis kode VBA untuk pencarian nama, Anda bisa melakukannya dengan beberapa cara berbeda, seperti menggunakan loop, menggunakan fungsi find Excel, atau menggunakan fungsi kustom untuk mencari nama tertentu. Di bawah ini, kami akan memperkenalkan secara detail cara menggunakan metode Range.Find di VBA untuk menulis fungsi kueri nama.
Di VBA, metode Range.Find adalah alat yang sangat ampuh dan umum digunakan untuk menemukan data tertentu. Berikut langkah-langkah dan contoh pengkodean pencarian nama menggunakan metode ini.
Sub TemukanNama()
Redupkan Sebagai Lembar Kerja
Set ws = ThisWorkbook.Sheets(Sheet1) 'Asumsikan daftar nama ada di Sheet1
Redupkan nama pencarian sebagai String
searchName = Wang Xiaoming'Ini adalah nama yang kami cari
Redupkan ditemukanCell As Range
Setel foundCell = ws.Cells.Find(What:=searchName, LookIn:=xlValues, LookAt:=xlWhole)
Jika Tidak ditemukan Sel Bukan Apa-apa, Maka
Nama MsgBox ditemukan: & nama pencarian & di: & ditemukanCell.Alamat
Kalau tidak
Nama MsgBox tidak ditemukan: & nama pencarian
Akhiri Jika
Akhiri Sub
Dalam contoh ini, pertama-tama kita siapkan objek lembar kerja ws untuk menunjuk ke lembar kerja yang berisi data nama. searchName adalah nama yang ingin kita cari. Selanjutnya gunakan metode Temukan untuk mencari. Jika nama yang sesuai ditemukan, kami akan menampilkan nama dan lokasinya di kotak pesan, jika tidak ditemukan, kotak pesan akan muncul untuk memberi tahu pengguna.
Jika nama yang Anda cari tersebar di area yang tidak beraturan atau Anda perlu mencocokkan kriteria pencarian yang lebih kompleks, metode penelusuran sel akan lebih fleksibel.
Sub TemukanNamaDenganPerulangan()
Redupkan Sebagai Lembar Kerja
Set ws = ThisWorkbook.Sheets(Sheet1) 'Asumsikan daftar nama ada di Sheet1
Redupkan nama pencarian sebagai string
searchName = Zhang San'Inilah nama yang kami cari
Redupkan sel Sebagai Rentang
Untuk Setiap sel Di ws.UsedRange
Jika sel.Nilai = Namapencarian Lalu
MsgBox menemukan nama: & nama pencarian & di: & alamat sel
Keluar dari Sub
Akhiri Jika
Sel berikutnya
Nama MsgBox tidak ditemukan: & nama pencarian
Akhiri Sub
Dalam kode ini, For Each loop digunakan untuk melakukan iterasi melalui area yang digunakan pada lembar kerja. Ketika nama yang cocok ditemukan, kotak pesan muncul untuk menampilkan nama dan lokasinya, lalu gunakan Sub Keluar untuk keluar dari subrutin. Jika tidak ditemukan setelah traversal selesai, kotak pesan juga akan muncul.
Selain kode di atas yang berjalan langsung di makro VBA, Anda juga bisa membuat fungsi kustom (Fungsi Buatan Pengguna, UDF) yang memungkinkan Anda menggunakan rumus langsung di sel Excel untuk melakukan kueri nama.
Fungsi FindNameUDF(searchName As String) Sebagai String
Redupkan Sebagai Lembar Kerja
Set ws = ThisWorkbook.Sheets(Sheet1) 'Asumsikan daftar nama ada di Sheet1
Redupkan ditemukanCell As Range
Setel foundCell = ws.Cells.Find(What:=searchName, LookIn:=xlValues, LookAt:=xlWhole)
Jika Tidak ditemukan Sel Bukan Apa-apa, Maka
FindNameUDF = Nama yang ditemukan: & nama pencarian & di: & foundCell.Address
Kalau tidak
FindNameUDF = Nama tidak ditemukan: & namapencarian
Akhiri Jika
Fungsi Akhir
Fungsi khusus FindNameUDF ini dapat digunakan di sel mana pun. Misalnya, jika Anda memasukkan =FindNameUDF(李思), ini akan mengembalikan lokasi John atau informasi yang tidak berdasar.
Dalam aplikasi sebenarnya, Anda mungkin juga perlu menghadapi beberapa skenario tingkat lanjut, seperti sensitivitas huruf besar-kecil, pencarian global, dan masalah lainnya.
Sub TemukanSemuaKejadian()
Redupkan Sebagai Lembar Kerja
Set ws = ThisWorkbook.Sheets(Sheet1) 'Asumsikan daftar nama ada di Sheet1
Redupkan nama pencarian sebagai string
searchName = Wang Xiaoming'Ini adalah nama yang kami cari
Redupkan dulu Ditemukan Sebagai String
Redupkan ditemukanCell As Range
Setel foundCell = ws.Cells.Find(What:=searchName, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
Jika Tidak ditemukan Sel Bukan Apa-apa, Maka
firstFound = ditemukanCell.Alamat
Melakukan
Nama MsgBox ditemukan: & nama pencarian & di: & ditemukanCell.Alamat
Setel foundCell = ws.Cells.FindNext(foundCell)
Loop Saat Tidak ditemukanCell Bukan Apa-apa Dan foundCell.Address <> firstFound
Kalau tidak
Nama MsgBox tidak ditemukan: & nama pencarian
Akhiri Jika
Akhiri Sub
Dalam kode ini, parameter MatchCase diatur ke True untuk menunjukkan sensitivitas huruf besar/kecil. Setelah menemukan hasil pertama, gunakan metode FindNext untuk terus menemukan kecocokan berikutnya, dan gunakan loop Do Loop untuk memastikan bahwa seluruh lembar kerja dicari hingga kembali ke kembali ke. Alamat sel pertama yang ditemukan.
Dengan menggabungkan penggunaan Range.Find, loop traversal, dan fungsi kustom, Anda dapat menulis kode kueri nama VBA yang sesuai dengan kebutuhan spesifik. Di atas adalah berbagai metode penggunaan VBA untuk menanyakan kode nama. Anda dapat memilih metode yang paling sesuai dengan situasi Anda yang sebenarnya.
1. Bagaimana cara menggunakan VBA untuk menulis kode kueri nama sederhana?
VBA dapat digunakan untuk menulis makro Excel yang kuat. Untuk menulis kode pencarian nama, Anda dapat mengikuti langkah-langkah berikut:
Pertama, pilih rentang di Excel untuk menyimpan data nama dan informasi terkait. Misalnya, Anda bisa menyimpan nama di kolom A dan informasi terkait lainnya di kolom B. Lalu, tekan Alt+F11 di Excel untuk membuka editor VBA. Di editor VBA Anda dapat membuat modul baru. Di modul baru, Anda dapat menulis kode VBA untuk mengimplementasikan fungsi kueri nama. Misalnya, Anda bisa menggunakan perulangan For untuk mengulangi kolom nama dan kemudian menggunakan pernyataan kondisional untuk menentukan apakah nama yang cocok ditemukan. Terakhir, Anda bisa menampilkan hasil kueri di sel lain di Excel atau menggunakan fungsi MsgBox untuk menampilkannya sebagai kotak pesan pop-up.Dengan mengikuti langkah-langkah di atas, Anda bisa menulis kode VBA sederhana untuk mengimplementasikan fungsi kueri nama. Harap ingat untuk mengaktifkan makro saat menyimpan file Excel.
2. Masalah apa yang harus Anda perhatikan saat menulis kode VBA?
Saat menulis kode VBA, ada beberapa masalah yang perlu diperhatikan untuk memastikan kode berjalan dengan benar dan mengoptimalkan kinerja:
Hindari penggunaan variabel global: Variabel global akan ada di seluruh proses, menghabiskan memori dan memengaruhi kinerja kode. Cobalah untuk membatasi cakupan variabel pada subrutin atau fungsi tertentu. Gunakan komentar: Menggunakan komentar dalam kode Anda akan meningkatkan keterbacaan kode dan membantu pengembang lain lebih memahami maksud kode tersebut. Cobalah untuk menambahkan komentar yang sesuai untuk setiap subrutin atau fungsi. Penanganan kesalahan: Menambahkan penanganan kesalahan yang sesuai ke kode dapat menghindari gangguan atau kesalahan kode karena situasi yang tidak terduga. Anda dapat menggunakan pernyataan On Error untuk menangkap dan menangani kesalahan run-time. Optimalkan kode: Coba gunakan teknik pengkodean yang efisien, seperti menghindari loop bersarang dan penghitungan berulang. Menggunakan pernyataan Exit For dalam satu perulangan dapat keluar dari perulangan lebih awal dan meningkatkan efisiensi eksekusi kode.3. Bagaimana cara memperluas fungsi kode kueri nama VBA?
Kode VBA dapat diperluas dan disesuaikan secara fleksibel untuk memenuhi kebutuhan spesifik. Jika Anda ingin memperluas fungsionalitas kode kueri nama VBA, Anda dapat mempertimbangkan metode berikut:
Tambahkan lebih banyak kondisi kueri: Selain nama, Anda bisa menambahkan kondisi kueri lain dalam kode, seperti usia, jenis kelamin, dll. Anda dapat menggunakan operator logika (seperti Dan, Atau) untuk menggabungkan beberapa kondisi kueri. Menerapkan kueri fuzzy: Jika Anda ingin mengizinkan pengguna melakukan kueri fuzzy, Anda dapat menggunakan operator Like VBA. Misalnya, Anda dapat mengizinkan pengguna menggunakan karakter wildcard (seperti * dan ?) dalam kueri untuk mewakili kecocokan fuzzy. Berinteraksi dengan database: Jika volume data Anda sangat besar, pertimbangkan untuk menyimpan data dalam database dan menggunakan VBA untuk berinteraksi dengan database. Anda dapat menggunakan ADO (ActiveX Data Objects) untuk menyambungkan dan menanyakan database. Buat antarmuka pengguna: Jika Anda ingin pengguna dapat memasukkan kondisi kueri dan melihat hasilnya secara mandiri, Anda dapat menggunakan alat pembuat antarmuka pengguna seperti UserForm. Dengan menambahkan kotak teks dan tombol ke UserForm, pengguna bisa memasukkan kondisi kueri dan mengklik tombol untuk melakukan operasi kueri.Di atas adalah beberapa ide untuk memperluas fungsi kode kueri nama VBA. Anda dapat menyesuaikan dan memodifikasinya sesuai kebutuhan sebenarnya. Semoga berhasil menulis kode VBA yang kuat!
Saya harap artikel ini dapat membantu Anda lebih memahami dan menerapkan VBA untuk kueri nama. Jika Anda memiliki pertanyaan, jangan ragu untuk bertanya!