Pertandingan VBA

Sama seperti kita memiliki Indeks dan Pencocokan dalam lembar kerja sebagai fungsi pencarian, kita juga dapat menggunakan fungsi Match di VBA sebagai fungsi pencarian, fungsi ini adalah fungsi lembar kerja dan diakses oleh aplikasi. kaedah lembaran kerja dan kerana ia adalah fungsi lembaran kerja, argumen untuk fungsi Padanan serupa dengan fungsi lembaran kerja.

Fungsi Pertandingan VBA

Fungsi Match VBA mencari kedudukan atau nombor baris dari nilai carian dalam array jadual iaitu di jadual excel utama.

Dalam lembaran kerja, fungsi pencarian adalah bahagian yang tidak terpisahkan dari excel. Beberapa fungsi pencarian penting adalah VLOOKUP, HLOOKUP, INDEX, dan MATCH. Sayangnya, kami tidak mempunyai fungsi ini sebagai fungsi VBA. Namun, kami dapat menggunakannya sebagai fungsi lembaran kerja di VBA.

Dalam artikel ini, saya akan menunjukkan kepada anda cara menggunakan salah satu fungsi carian lembaran kerja PERTANDINGAN di VBA sebagai fungsi lembaran kerja.

Bagaimana Menggunakan Fungsi MATCH di VBA Excel?

Kami akan menunjukkan contoh ringkas penggunaan fungsi MATCH Excel di VBA.

Anda boleh memuat turun Templat VBA Match Excel ini di sini - Templat VBA Match Excel

Contoh # 1

Di VBA, kita dapat menggunakan formula MATCH ini dalam excel sebagai fungsi lembaran kerja. Ikuti langkah di bawah untuk menggunakan fungsi MATCH di VBA.

Langkah 1: Buat subproses dengan memberikan nama makro.

Kod:

 Sub Perlawanan_Contoh1 ()

Langkah 2: Dalam sel E2 kita memerlukan hasilnya, jadi mulailah kodnya sebagai Range ("E2"). Nilai =

Kod:

 Sub Match_Contoh1 () Julat ("E2"). Nilai = Sub Akhir 

Langkah 3: Nilai sel E2 mestilah hasil formula MATCH. Oleh itu, untuk mengakses fungsi VBA MATCH, kita perlu menggunakan sifat "WorksheetFunction" terlebih dahulu. Di harta tanah ini, kami akan mendapat semua senarai fungsi lembaran kerja yang tersedia.

Langkah 4: Pilih fungsi MATCH di sini.

Kod:

 Sub Match_Example1 () Julat ("E2"). Nilai = Lembaran KerjaFungsi.Match (Sub Akhir 

Langkah 5: Sekarang masalah bermula kerana kita tidak mendapat nama sintaks yang tepat sebaliknya kita mendapat sintaks sebagai "Arg1, Arg2, Arg3" seperti ini. Oleh itu, anda mesti benar-benar yakin dengan sintaks di sini.

Argumen pertama kami adalah LOOKUP VALUE, LOOKUP VALUE kami ada di sel D2, jadi pilih sel sebagai Julat ("D2"). Nilai .

Kod:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, End Sub 

Langkah 6: Argumen kedua ialah Table Array, julat array jadual kami adalah dari A2 hingga A10. Oleh itu, pilih julat sebagai "Range (" A2: A10 ")"

Kod:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("A2: A10"), End Sub 

Langkah 7: Sekarang hujah terakhir adalah JENIS PERTANDINGAN. Kami memerlukan padanan tepat, jadi masukkan nilai argumen sebagai sifar.

Kod:

 Sub Match_Example1 () Range ("E2"). Value = WorksheetFunction.Match (Range ("D2"). Value, Range ("A2: A10"), 0) End Sub 

Jalankan makro kita akan mendapat kedudukan apa sahaja nama tahun yang ada di sel D2.

Contoh # 2 - Pertandingan VBA Dari Helaian Lain

Andaikan sekumpulan data yang sama di atas terdapat pada dua helaian yang berbeza. Sebagai contoh, susunan jadual ada di dalam nama lembaran yang disebut "Lembar Data" dan Nilai Pencarian ada di nama lembaran yang disebut "Lembaran Hasil".

Dalam kes ini, kita perlu merujuk lembaran kerja dengan namanya sebelum kita merujuk kepada julat. Di bawah ini adalah sekumpulan kod dengan nama lembaran.

Kod:

 Sub Match_Example2 () Sheets ("Result Sheet"). Range ("E2"). Value = WorksheetFunction.Match (Sheets ("Result Sheet"). Range ("D2"). Value, Sheets ("Data Sheet"). Julat ("A2: A10"), 0) Sub Akhir 

Contoh # 3 - Fungsi Padankan VBA dengan Gelung

Sekiranya hasil yang kita inginkan dalam satu sel maka tidak ada masalah, tetapi jika hasilnya harus masuk dalam lebih dari satu sel maka kita perlu menggunakan gelung VBA untuk mendapatkan hasilnya di semua sel.

Andaikan anda mempunyai data seperti ini.

Dalam kes-kes ini, adalah tugas herculean untuk menulis kod panjang, jadi kita beralih ke gelung. Di bawah ini adalah set kod yang akan berfungsi untuk kita.

Kod:

 Sub Match_Example3 () Dim k As Integer For k = 2 To 10 Cells (k, 5). Value = WorksheetFunction.Match (Cell (k, 4). Value, Range ("A2: A10"), 0) Next k End Sub 

Set kod ini akan mendapat hasil hanya dalam sekelip mata.