Bagaimana untuk mengautomasikan Vlookup menggunakan Excel VBA

Bagaimana untuk mengautomasikan Vlookup menggunakan Excel VBA

Vlookup ialah fungsi penting dalam Excel dan telah menjadi bahagian penting dalam pemprosesan data. Ia menyediakan beberapa fungsi yang boleh anda gabungkan dengan pangkalan data yang komprehensif.

Walau bagaimanapun, jika anda ingin mengautomasikan fungsi ini, anda boleh, terutamanya jika anda tahu cara menggunakan bahasa automasi yang tersedia dalam Excel dan VBA. Begini cara anda boleh mengautomasikan fungsi vlookup dalam Excel VBA .

Formula fungsi Vlookup dalam Excel

=vlookup(lookup_value, lookup_array, column_index, exact_match/partial_match)

Maksud hujah dalam formula:

  • lookup_value: Nilai asas yang anda ingin cari dalam tatasusunan.
  • lookup_array: Data sumber, lookup_value akan digunakan sebagai rujukan.
  • column_index: Lajur mengembalikan nilai.
  • exact_match/partial_match: Gunakan 0 atau 1 untuk menentukan jenis gabungan.

Fungsi VBA Vlookup dalam Excel

Penggunaan fungsi Vlookup tidak jauh berbeza apabila anda menggunakannya secara langsung dalam Excel atau melalui VBA. Sama ada penganalisis data sedang memproses baris maklumat atau pengurus gudang sentiasa bekerja dengan produk baharu, fungsi vlookup berguna.

Apabila bekerja dengan julat carian dinamik, mengautomasikan formula adalah yang terbaik, untuk mengelakkan daripada memanipulasi formula yang sama beberapa kali dalam Excel. Dengan mengautomasikan fungsi Vlookup dalam VBA, anda boleh melakukan pengiraan berbilang lajur dengan satu klik.

Ilustrasi

Set data ini mempunyai dua bahagian: jadual carian dan titik data sasaran. Jadual carian mengandungi 3 lajur, dengan data dalam dua medan Sub-Kategori dan Nama Produk:

Bagaimana untuk mengautomasikan Vlookup menggunakan Excel VBA

Jadual sasaran mempunyai lajur yang sesuai, tiada subfolder atau data nama produk. Ambil perhatian bahawa nilai dalam lajur ID Pesanan juga muncul dalam lajur yang sama dalam jadual carian:

Bagaimana untuk mengautomasikan Vlookup menggunakan Excel VBA

1. Buat tetapan yang diperlukan

Mulakan dengan membuka editor kod (tekan Alt + F11 atau navigasi ke tab Pembangun ) dalam buku kerja Excel baharu dan tambahkan modul untuk memulakan pengekodan. Dalam editor kod, tambahkan baris berikut ke bahagian atas tetingkap pengaturcaraan untuk mencipta sub-rutin:

Sub vlookup_fn1()End Sub

sub-rutin ialah bekas untuk kod VBA dan diperlukan untuk menjalankannya dengan jayanya. Alternatif lain ialah mencipta borang pengguna VBA untuk menjadikan UI lebih interaktif.

2. Isytiharkan pembolehubah dan cipta skop rujukan

Pertama, anda perlu mengisytiharkan jenis data pembolehubah menggunakan arahan Dim:

Dim i as integer, lastrow as long

Seterusnya, buat lastrow pembolehubah , untuk menyimpan nilai baris terakhir yang diisi dalam julat carian. Fungsi lastrow menggunakan fungsi end(xldown) untuk mengira rujukan baris terakhir dalam julat tertentu.

Dalam contoh ini, pembolehubah lastrow mengandungi nilai baris terakhir yang diisi dalam julat carian, khususnya 17.

lastrow = Sheets("Sheet2").Range("F3").End(xlDown).Row

Dalam contoh di atas, jadual destinasi memanjang dari A2:C17, dan jadual sumber memanjang dari F2:H17. Formula vlookup akan melingkari setiap nilai dalam lajur A, mencarinya dalam jadual sumber dan menampal entri gabungan dalam lajur B dan C.

Walau bagaimanapun, sebelum memasuki gelung, anda mesti menyimpan nilai julat dalam pembolehubah baharu ( my_range ) seperti berikut:

my_range = Sheets("Sheet2").Range("F3:H" & lastrow)

Anda mesti menyatakan secara eksplisit rujukan sel permulaan (F3) dan rujukan lajur penamat (H). VBA secara automatik menambah nilai baris untuk melengkapkan tatasusunan carian.

Bagaimana untuk mengautomasikan Vlookup menggunakan Excel VBA

3. Tulis gelung untuk mengitar setiap nilai carian

Sebelum menulis gelung, tentukan nilai baris permulaan, 2. Menentukan nilai permulaan untuk gelung adalah perlu apabila anda berurusan dengan komponen dinamik. Dalam jadual destinasi, baris 2 ialah baris pertama data. Tukar nilai ini jika data bermula dalam baris yang berbeza.

i = 2

Anda boleh menggunakan gelung do-while untuk memproses setiap baris, bermula pada baris 2 dan berakhir pada baris 17. Seperti kod yang lain, aspek ini adalah fleksibel; Gelung akan berjalan sehingga syarat adalah palsu. Gunakan syarat untuk menguji nilai bukan kosong dalam sel pertama baris semasa.

Do While len(Sheets("Sheet2").Cells(i, 1).value) <> 0

Di dalam gelung, anda boleh memanggil fungsi Vlookup untuk mengisi sel:

Sheets("Sheet2").Cells(i, 2).Value = _ Application.WorksheetFunction.VLookup(Sheets("Sheet2") _ .Cells(i, 1).Value, my_range, 2, False)Sheets("Sheet2").Cells(i, 3).Value = _ Application.WorksheetFunction.VLookup(Sheets("Sheet2") _ .Cells(i, 1).Value, my_range, 3, False)

Perintah ini menetapkan nilai sel dalam baris semasa, masing-masing dalam lajur 2 dan 3. Mereka menggunakan objek WorksheetFunction untuk memanggil fungsi Vlookup, menghantar nilai yang sepadan dari lajur 1 untuk mencari. Mereka juga melepasi julat yang anda tetapkan pada mulanya dan indeks lajur yang berkaitan untuk mengambil nilai akhir.

Kod vlookup sudah sedia, tetapi anda masih perlu menambah pembolehubah baris setiap kali dalam gelung:

i = i + 1

Setiap kali gelung berjalan, ia menambah nilai i sebanyak 1 . Ingat, nilai baris permulaan ialah 2, kenaikan berlaku setiap kali gelung berjalan. Gunakan kata kunci gelung untuk menetapkan penghujung blok kod ini.

Apabila keseluruhan kod dijalankan, ia akan mengisi kedua-dua lajur dengan hasil, berdasarkan nilai dalam jadual sumber.

Bagaimana untuk mengautomasikan Vlookup menggunakan Excel VBA

Di bawah ialah keseluruhan kod rujukan:

 Sub vlookup_fn1() Dim i As Integer lastrow = Sheets("Sheet2").Range("F3").End(xlDown).Row my_range = Sheets("Sheet2").Range("F3:H" & lastrow) i = 2 Do While Len(Sheets("Sheet2").Cells(i, 1).Value) <> 0 On Error Resume Next Sheets("Sheet2").Cells(i, 2).Value = _ Application.WorksheetFunction.VLookup(Sheets("Sheet2") _ .Cells(i, 1).Value, my_range, 2, False) Sheets("Sheet2").Cells(i, 3).Value = _ Application.WorksheetFunction.VLookup(Sheets("Sheet2") _ .Cells(i, 1).Value, my_range, 3, False) i = i + 1 LoopEnd Sub

4. Buat butang untuk menjalankan kod

Anda boleh membuat butang dalam jadual Excel untuk menjalankannya dengan satu klik. Masukkan bentuk yang dikehendaki pada helaian Excel kosong, klik kanan padanya dan klik pilihan Berikan Makro .

Bagaimana untuk mengautomasikan Vlookup menggunakan Excel VBA

Dalam kotak dialog, pilih nama sub-rutin dan klik OK .

Bagaimana untuk mengautomasikan Vlookup menggunakan Excel VBA

Apabila anda ingin menjalankan kod, klik butang untuk melihat cara data diisi dengan segera.

Di atas ialah cara menggunakan Excel VBA untuk mengautomasikan fungsi carian . Semoga artikel itu berguna kepada anda.


Mainkan puzzle pada Excel

Mainkan puzzle pada Excel

MehmetSalihKoten, pengguna Reddit, telah mencipta versi Tetris yang berfungsi sepenuhnya dalam Microsoft Excel.

Cara menggunakan fungsi Tukar dalam Excel

Cara menggunakan fungsi Tukar dalam Excel

Untuk menukar unit ukuran dalam Excel, kami akan menggunakan fungsi Tukar.

Cara menggunakan fungsi HLOOKUP dalam Excel

Cara menggunakan fungsi HLOOKUP dalam Excel

Apakah fungsi HLOOKUP? Bagaimana untuk menggunakan fungsi HLOOKUP dalam Excel? Jom ketahui bersama LuckyTemplates!

Fungsi IFERROR dalam Excel, formula dan penggunaan

Fungsi IFERROR dalam Excel, formula dan penggunaan

Fungsi IFERROR dalam Excel agak biasa digunakan. Untuk menggunakannya dengan baik, anda perlu memahami formula IFERROR Microsoft Excel.

Cara menggunakan fungsi VALUE dalam Excel

Cara menggunakan fungsi VALUE dalam Excel

Apakah fungsi VALUE dalam Excel? Apakah formula Nilai dalam Excel? Jom ketahui dengan LuckyTemplates.com!

Fungsi EOMONTH Excel, cara menggunakan fungsi EOMONTH

Fungsi EOMONTH Excel, cara menggunakan fungsi EOMONTH

Fungsi EOMONTH dalam Excel digunakan untuk memaparkan hari terakhir bulan tertentu, dengan pelaksanaan yang sangat mudah. Anda kemudiannya akan mendapat hari terakhir bulan tertentu berdasarkan data yang kami masukkan.

Cara menggunakan gelung do-while dalam Excel VBA

Cara menggunakan gelung do-while dalam Excel VBA

Mahu mengautomasikan tugasan berulang dalam Excel VBA? Jadi mari kita pelajari cara menggunakan gelung Do-While untuk melaksanakan satu siri tindakan yang berulang sehingga syarat dipenuhi.

Excel 2016 - Pelajaran 6: Tukar saiz lajur, baris dan sel dalam Excel

Excel 2016 - Pelajaran 6: Tukar saiz lajur, baris dan sel dalam Excel

Lebar lajur lalai dan ketinggian baris dalam Excel mungkin tidak sepadan dengan data yang anda masukkan. Artikel di bawah menunjukkan kepada anda beberapa cara untuk menukar saiz lajur, baris dan sel dalam Excel 2016. Sila rujuk padanya!

Excel 2016 - Pelajaran 5: Konsep asas sel dan julat

Excel 2016 - Pelajaran 5: Konsep asas sel dan julat

Setiap kali anda bekerja dengan Excel, anda perlu memasukkan maklumat - atau kandungan - ke dalam sel. Mari belajar dengan LuckyTemplates konsep asas sel dan julat dalam Excel 2016!

Cara menggunakan fungsi XLOOKUP dalam Excel

Cara menggunakan fungsi XLOOKUP dalam Excel

Apakah fungsi Xlookup dalam Excel? Bagaimana untuk menggunakan Xlookup dalam Excel? Jom ketahui dengan LuckyTemplates.com!