Pertandingan VBA - Bagaimana Cara Menggunakan Fungsi Match di VBA Excel? (Contoh)

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.

Contoh 1

Di VBA, kita dapat 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"). Value =

Kode:

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

Langkah 3: Di E2, nilai sel 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 kami tidak mendapatkan nama sintaks yang tepat. Sebaliknya, kami mendapatkan sintaks sebagai "Arg1, Arg2, Arg3" seperti ini. Jadi, Anda harus benar-benar yakin dengan sintaksis di sini.

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

Kode:

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

Langkah 6: Argumen kedua adalah Array Tabel. Rentang array 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 di dua lembar berbeda. Misalnya, larik tabel ada di nama sheet yang disebut "Lembar Data", dan Nilai Pencarian ada di nama sheet yang disebut "Lembar Hasil."

Dalam kasus 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 sel, maka tidak masalah, tetapi jika hasilnya harus lebih dari satu sel, maka kita perlu menggunakan VBA loop untuk mendapatkan hasil di semua sel.

Asumsikan Anda memiliki data seperti ini.

Dalam kasus ini, ini adalah tugas yang sangat berat untuk menulis kode yang panjang, jadi kami 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.

Artikel yang menarik...