VBA zápas | Jak používat funkci shody ve VBA Excel? (Příklady)

Stejně jako máme index a shodu v listu jako vyhledávací funkce, můžeme také použít funkce shody ve VBA jako vyhledávací funkci, tato funkce je funkce listu a je přístupná aplikací. metoda listu a protože se jedná o funkci listu, jsou argumenty pro funkci Match podobné funkci listu.

Funkce VBA Match

Funkce VBA Match hledá pozici nebo číslo řádku vyhledávací hodnoty v poli tabulky, tj. V hlavní tabulce aplikace Excel.

V listu jsou vyhledávací funkce nedílnou součástí aplikace Excel. Některé z důležitých vyhledávacích funkcí jsou VLOOKUP, HLOOKUP, INDEX a MATCH. Bohužel nemáme tyto funkce jako funkce VBA. Můžeme je však použít jako funkce listu ve VBA.

V tomto článku vám ukážu, jak použít jednu z funkcí vyhledávání listu MATCH ve VBA jako funkci listu.

Jak používat funkci MATCH ve VBA Excel?

Ukážeme vám jednoduchý příklad použití funkce Excel MATCH ve VBA.

Tuto šablonu VBA Match Excel si můžete stáhnout zde - VBA Match Excel Template

Příklad č. 1

Ve VBA můžeme použít tento MATCH vzorec v aplikaci Excel jako funkci listu. Chcete-li použít funkci MATCH ve VBA, postupujte podle následujících kroků.

Krok 1: Vytvořte podproces zadáním názvu makra.

Kód:

 Sub Match_Example1 ()

Krok 2: V buňce E2 potřebujeme výsledek, takže začněte kód jako Range („E2“). Hodnota =

Kód:

 Sub Match_Example1 () Range ("E2"). Hodnota = End Sub 

Krok 3: Hodnota buňky E2 by měla být výsledkem MATCH vzorce. Takže pro přístup k funkci VBA MATCH musíme nejdříve použít vlastnost „WorksheetFunction“. V této vlastnosti získáme všechny dostupné seznamy funkcí listu.

Krok 4: Zde vyberte funkci MATCH.

Kód:

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

Krok 5: Nyní začíná problém, protože nedostaneme přesný název syntaxe, spíše dostaneme syntaxi jako „Arg1, Arg2, Arg3“, jako je tato. Zde si tedy musíte být naprosto jisti syntaxemi.

Náš první argument je HODNOTA HODNOCENÍ, naše HODNOTA HODNOCENÍ je v buňce D2, proto vyberte buňku jako Rozsah („D2“). Hodnota .

Kód:

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

Krok 6: Druhým argumentem je Table Array, náš rozsah pole tabulky je od A2 do A10. Vyberte tedy rozsah jako „Rozsah („ A2: A10 “)“

Kód:

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

Krok 7: Nyní je posledním argumentem MATCH TYPE. Potřebujeme přesnou shodu, proto zadejte hodnotu argumentu jako nulu.

Kód:

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

Spusťte makro, získáme pozici jakéhokoli názvu roku v buňce D2.

Příklad č. 2 - VBA shoda z jiného listu

Předpokládejme, že stejná sada dat z výše uvedeného existuje na dvou různých listech. Například pole tabulky je v názvu listu s názvem „Datový list“ a vyhledávací hodnota je tam v názvu listu s názvem „Výsledkový list“.

V tomto případě musíme nejprve odkázat na pracovní listy podle názvu, než na rozsahy. Níže je sada kódů s názvy listů.

Kód:

 Sub Match_Example2 () Sheets ("Result Sheet") .Range ("E2"). Value = WorksheetFunction.Match (Sheets ("Result Sheet") .Range ("D2"). Value, Sheets ("Data Sheet"). Rozsah („A2: A10“), 0) Koncový díl 

Příklad č. 3 - Funkce VBA Match se smyčkami

Pokud chceme výsledek v jedné buňce, pak žádný problém, ale pokud musí výsledek přijít do více buněk, musíme použít smyčku VBA, abychom získali výsledek ve všech buňkách.

Předpokládejme, že máte data jako tato.

V těchto případech je herkulovským úkolem psát zdlouhavé kódy, takže přejdeme na smyčky. Níže je sada kódu, který za nás udělá práci.

Kód:

 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 

Tato sada kódů získá výsledek pouhým mrknutím oka.


$config[zx-auto] not found$config[zx-overlay] not found