VBA Application.Match - Steg för steg-guide med exempel

Innehållsförteckning

Excel VBA-applikation. Matchning

En av de bästa sakerna med VBA är att den har sin egen funktion och att den också gör det möjligt för oss att få tillgång till alla kalkylbladets funktioner under klassen "Kalkylbladets funktion". Du måste redan ha använt MATCH-funktionen som en kalkylfunktion, men den är inte en VBA-funktion, så vi måste komma åt under kalkylbladets funktionsklass. I den här artikeln visar vi dig hur du använder MATCH-funktionen i VBA med applikationsmetoden.

Snabb sammanfattning av MATCH-funktionen

MATCH är en uppslagsfunktion som letar efter uppslagsvärdets position i den nämnda uppslagsmatrisen. Titta till exempel på nedanstående bild av data.

I ovanstående data har vi månader från A2 till A6, och om vi vill veta på vilken plats "Mar" -månaden förekommer kan vi använda MATCH-funktionen.

Nedan är syntaxen för MATCH-funktionen.

MATCH (Uppslagsvärde, Uppslagsmatris, (Matchningstyp))
  • Uppslagsvärde: För vilket värde vi letar efter positionen i uppslagsmatrisen.
  • Lookup Array: I vilken matris vi letar efter uppslagsvärdets position .
  • (Matchningstyp): För detta kan vi ange tre argument.
  1. 1 = Mindre än
  2. 0 = Exakt matchning
  3. -1 = större än

För det mesta använder vi bara "0 exakt matchning".

Hur använder jag Application.Match-funktionen i VBA?

Exempel 1

Titta på nedanstående data i Excel.

Från ovanstående data måste vi hitta positionen för "Mar" -månaden inom cellområdet från A2 till A6. Eftersom vi behöver resultat i D2-celler startar du genast koden som Range (“D2”).

För att komma in i D2-cellen måste vi använda MATCH-kalkylbladets funktion, så för att komma åt detta först måste vi komma åt APPLICATION-objektet och sedan WORKSHEET FUNCTION-objektet.

Ange punkt för att se en lista över kalkylfunktioner.

Välj "Matcha" från listan.

Ett av problemen i VBA när vi använder kalkylfunktioner är att vi inte ser exakt syntax som vi ser med kalkylbladets funktion. Detta är en av anledningarna till att vi bara har förklarat syntaxen i början.

Så det första argumentet är uppslagsvärde, dvs för vilket värde vi letar efter för att hitta platsen. I det här fallet vill vi hitta platsen för ”Mar” som finns i C2-cellen, så ange cellreferensen.

Nästa argument är uppslagsmatris, dvs i vilket område vi letar efter positionen för ett uppslagsvärde , för dessa leveransceller från A2 till A6.

Det sista argumentet kommer att vara en exakt matchning, så ange 0.

Koda:

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

Okej, vi är klara med formeln.

Kör koden genom F5-tangenten och se vad vi får.

Så vi har fått resultatet som 3 eftersom värdet ”Mar” är på plats för tredje position i området A2 till A6.

Denna MATCH-funktion kan ge positionen för uppslagsvärdet. MATCH-funktionen används dock till stor del med VLOOKUP-funktionen för att tillhandahålla kolumnindexnummer baserat på kolumnrubriken.

Exempel 2

Nu får vi se hur man använder MATCH som en stödfunktion för VLOOKUP-funktionen.

Titta på nedanstående data.

I ovanstående tabell tittar vi på försäljningsåret 2018 ”Feb”, så vi måste använda VLOOKUP-funktionen. VLOOKUP är också en kalkylbladfunktion, så få tillgång till detta som hur vi har öppnat MATCH-funktionen.

Uppslagsvärde kommer att vara G2-cell, så ange celladress.

Koda:

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

Table Array kommer att vara från A2 till D6.

Koda:

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

Nu måste vi ange från vilken kolumn i tabellmatrisen vi letar efter resultatet, så detta kommer från den tredje kolumnen. Istället för att ange kolumnnumret som 3, låt oss använda MATCH-funktionen.

Koda:

Sub Match_Example2 () Range ("H2"). Value = Application.WorksheetFunction.VLookup (Range ("G2"). Value, Range ("A2: D6"), Application.WorksheetFunction.Match (Range ("H1")). Värde, intervall ("A1: D1"), 0), 0) Slut Sub

Så MATCH-funktionen ger kolumnnumret från intervallet A1 till D1 för månaden ”Feb”. Låt oss köra koden och se hur den får kolumnnummer automatiskt.

Nu har vi ett resultat från kolumn nummer 2 tack vare automatisk leverans av kolumnnummer från MATCH-funktionen.

Saker att komma ihåg

  • MATCH-funktionen söker efter placeringsvärdet i den valda matrittabellen.
  • MATCH-funktionen används huvudsakligen med VLOOKUP-funktionen för att automatiskt ange kolumnindexnumret med hjälp av kolumnrubrik.
  • MATCH-funktionen är tillgänglig som en kalkylfunktion i VBA.

Intressanta artiklar...