VBA Application.Match - Ghid pas cu pas cu exemple

Aplicație VBA Excel.Match

Unul dintre cele mai bune lucruri despre VBA este că are propria funcție și, de asemenea, ne va permite să accesăm toate funcțiile foii de lucru din clasa „Funcție foaie de lucru”. Trebuie să fi folosit deja funcția MATCH ca funcție de foaie de lucru, dar nu este o funcție VBA, deci trebuie să accesăm în clasa funcției de foaie de lucru. În acest articol, vă vom arăta cum să utilizați funcția MATCH în VBA folosind metoda Application.

Recapitulare rapidă a funcției MATCH

MATCH este o funcție de căutare care caută poziția valorii de căutare în matricea de căutare menționată. De exemplu, uitați-vă la imaginea de mai jos a datelor.

În datele de mai sus, avem luni de la A2 la A6 și, dacă vrem să știm în ce loc apare luna „Mar”, atunci putem folosi funcția MATCH.

Mai jos este sintaxa funcției MATCH.

MATCH (valoare de căutare, matrice de căutare, (tip de potrivire))
  • Valoare de căutare: pentru ce valoare căutăm poziția în matricea de căutare.
  • Căutare matrice: în ce matrice căutăm poziția valorii de căutare.
  • (Tip de potrivire): Pentru aceasta, putem oferi trei argumente.
  1. 1 = Mai puțin de
  2. 0 = potrivire exactă
  3. -1 = mai mare decât

De cele mai multe ori, folosim doar „0 potrivire exactă”.

Cum se folosește funcția Application.Match în VBA?

Exemplul nr. 1

Uită-te la datele de mai jos în Excel.

Din datele de mai sus, trebuie să găsim poziția lunii „Mar” în intervalul de celule de la A2 la A6. Deoarece avem nevoie de rezultate în celulele D2, începem imediat codul ca Range („D2”). Valoare =.

Pentru a obține valoarea în celula D2, trebuie să folosim funcția de foaie de lucru MATCH, deci pentru a accesa mai întâi acest lucru, trebuie să accesăm obiectul APLICAȚIE și apoi obiectul FUNCȚIE DE LUCRU.

Introduceți punctul pentru a vedea o listă a funcțiilor foii de lucru.

Alegeți „Potriviți” din listă.

Una dintre problemele din VBA în timpul utilizării funcțiilor foii de lucru este că nu vedem sintaxa exactă așa cum vedem cu funcția foaie de lucru. Acesta este unul dintre motivele pentru care am explicat sintaxa doar la început.

Deci, primul argument este valoarea de căutare, adică pentru care valoare căutăm să găsim locul. În acest caz, căutăm să găsim locul pentru „Mar” care se află în celula C2, deci furnizați referința celulei.

Următorul argument este matricea de căutare, adică în ce domeniu căutăm poziția unei valori de căutare , pentru aceste celule de alimentare de la A2 la A6.

Ultimul argument va fi o potrivire exactă, deci furnizați 0.

Cod:

Sub Match_Example1 () Range ("D2"). Value = Application.WorksheetFunction.Match (Range ("C2"). Value, Range ("A2: A6"), 0) End Sub

Ok, am terminat cu formula.

Rulați codul prin tasta F5 și vedeți ce obținem.

So we have got the result as 3 because the value “Mar” is in the place of 3rd position in the range A2 to A6.

This MATCH function can provide the position of the lookup value. However, MATCH function largely used with the VLOOKUP function to supply the column index number based on the column header.

Example #2

Now we will see how to use MATCH as a supporting function for the VLOOKUP function.

Look at the below data.

In the above table, we are looking at the year 2018 “Feb” month sales, so we need to use the VLOOKUP function. VLOOKUP is also a worksheet function, so access this like how we have accessed the MATCH function.

Lookup Value will be G2 cell, so supply cell address.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, End Sub

Table Array will be from A2 to D6.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value,Range("A2:D6"), End Sub

Now we need to provide from which column of the table array we are looking for the result, so this will be from the 3rd column. Instead of supplying the column number as 3, let’s use the MATCH function.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, Range("A2:D6"), Application.WorksheetFunction.Match(Range("H1").Value, Range("A1:D1"), 0), 0) End Sub

Deci funcția MATCH oferă numărul coloanei din intervalul A1 până la D1 pentru luna „Feb”. Să rulăm codul și să vedem cum obține automat numerele de coloană.

Gata, avem un rezultat din coloana numărul 2 datorită furnizării automate a numărului de coloane din funcția MATCH.

Lucruri de amintit

  • Funcția MATCH caută poziția valorii de căutare în tabelul de matrice selectat.
  • Funcția MATCH este utilizată în principal cu funcția VLOOKUP pentru a furniza automat numărul indexului coloanei folosind titlul coloanei.
  • Funcția MATCH este disponibilă ca funcție de foaie de lucru în VBA.

Articole interesante...