Pertandingan VBA

Sama seperti kita memiliki Index and Match di worksheet sebagai fungsi lookup kita juga bisa menggunakan fungsi Match di VBA sebagai fungsi lookup, fungsi ini adalah fungsi worksheet dan diakses oleh aplikasi. metode lembar kerja dan karena ini adalah fungsi lembar kerja, argumen untuk fungsi Match mirip dengan fungsi lembar kerja.

Fungsi Pencocokan VBA

Fungsi VBA Match mencari posisi atau nomor baris dari nilai pencarian dalam larik tabel, yaitu di tabel excel utama.

Di lembar kerja, fungsi pencarian merupakan bagian integral dari excel. Beberapa fungsi pencarian penting adalah VLOOKUP, HLOOKUP, INDEX, dan MATCH. Sayangnya, kami tidak memiliki fungsi ini sebagai fungsi VBA. Namun, kami dapat menggunakannya sebagai fungsi lembar kerja di VBA.

Pada artikel ini, saya akan menunjukkan cara menggunakan salah satu fungsi pencarian lembar kerja MATCH di VBA sebagai fungsi lembar kerja.

Bagaimana Cara Menggunakan Fungsi MATCH di VBA Excel?

Kami akan menunjukkan kepada Anda contoh sederhana penggunaan fungsi Excel MATCH di VBA.

Anda dapat mengunduh Template Excel Pertandingan VBA ini di sini - Template Excel Pertandingan VBA

Contoh 1

Di VBA, kita bisa menggunakan rumus MATCH ini di excel sebagai fungsi lembar kerja. Ikuti langkah-langkah di bawah ini untuk menggunakan fungsi MATCH di VBA.

Langkah 1: Buat subprocedure dengan memberikan nama makro.

Kode:

 Sub Match_Example1 ()

Langkah 2: Di sel E2 kita membutuhkan hasilnya, jadi mulailah kode sebagai Range ("E2") Nilai =

Kode:

 Sub Match_Example1 () Range ("E2") Nilai = End Sub 

Langkah 3: Dalam nilai sel E2 harus merupakan hasil dari rumus MATCH. Jadi untuk mengakses fungsi VBA MATCH, kita perlu menggunakan properti "WorksheetFunction" terlebih dahulu. Di properti ini, kita akan mendapatkan semua daftar fungsi lembar kerja yang tersedia.

Langkah 4: Pilih fungsi MATCH di sini.

Kode:

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

Langkah 5: Sekarang masalahnya dimulai karena kita tidak mendapatkan nama sintaks yang tepat, melainkan kita mendapatkan sintaks sebagai "Arg1, Arg2, Arg3" seperti ini. Jadi, Anda harus benar-benar yakin dengan sintaksis di sini.

Argumen pertama kita adalah LOOKUP VALUE, LOOKUP VALUE ada di sel D2, jadi pilih sel sebagai Range ("D2") .

Kode:

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

Langkah 6: Argumen kedua adalah Array Tabel, rentang larik tabel kami adalah dari A2 hingga A10. Jadi pilih rentang sebagai "Rentang (" A2: A10 ")"

Kode:

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

Langkah 7: Sekarang argumen terakhirnya adalah MATCH TYPE. Kami membutuhkan pencocokan tepat, jadi masukkan nilai argumen sebagai nol.

Kode:

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

Jalankan makro kita akan mendapatkan posisi apapun nama tahun yang ada di sel D2.

Contoh # 2 - Pertandingan VBA Dari Lembar Lain

Asumsikan kumpulan data yang sama dari atas ada pada dua lembar berbeda. Misalnya, array tabel ada di nama sheet yang disebut "Lembar Data" dan Nilai Pencarian ada di nama sheet yang disebut "Lembar Hasil".

Dalam hal ini, kita perlu mereferensikan lembar kerja dengan namanya sebelum kita merujuk ke range. Di bawah ini adalah set kode dengan nama sheet.

Kode:

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

Contoh # 3 - Fungsi Pencocokan VBA dengan Loop

Jika hasil yang kita inginkan dalam satu cell maka tidak ada masalah, tetapi jika hasilnya harus lebih dari satu cell maka kita perlu menggunakan VBA loop untuk mendapatkan hasil di semua cell.

Asumsikan Anda memiliki data seperti ini.

Dalam kasus ini adalah tugas yang sangat berat untuk menulis kode yang panjang, jadi kita beralih ke loop. Di bawah ini adalah sekumpulan kode yang akan melakukan pekerjaan untuk kita.

Kode:

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

Kumpulan kode ini akan mendapatkan hasil hanya dalam sekejap mata.