VBA zápas - Ako používať funkciu zhody vo VBA Excel? (Príklady)

Rovnako ako v zozname máme funkcie indexu a zhody ako vyhľadávacie funkcie, môžeme tiež použiť funkcie zhody vo VBA ako vyhľadávaciu funkciu, táto funkcia je funkciou hárka a je k nej prístupná. metóda listu a keďže ide o funkciu listu, argumenty pre funkciu Zhoda sú podobné funkcii listu.

Funkcia VBA Match

Funkcia VBA Match vyhľadáva pozíciu alebo číslo riadku vyhľadávanej hodnoty v poli tabuľky, tj v hlavnej excelovej tabuľke.

V hárku sú vyhľadávacie funkcie neoddeliteľnou súčasťou programu Excel. Niektoré z dôležitých vyhľadávacích funkcií sú VLOOKUP, HLOOKUP, INDEX a MATCH. Tieto funkcie bohužiaľ nemáme ako funkcie VBA. Môžeme ich však použiť ako funkcie pracovného hárka vo VBA.

V tomto článku vám ukážem, ako použiť jednu z funkcií vyhľadávania tabuľky MATCH vo VBA ako funkciu listu.

Ako používať funkciu MATCH vo VBA Excel?

Ukážeme vám jednoduchý príklad použitia funkcie Excel MATCH vo VBA.

Príklad č

Vo VBA môžeme tento MATCHOVÝ vzorec použiť v programe Excel ako funkciu pracovného hárka. Ak chcete použiť funkciu MATCH vo VBA, postupujte podľa nasledujúcich krokov.

Krok 1: Vytvorte podproces zadaním názvu makra.

Kód:

Sub Match_Example1 ()

Krok 2: V bunke E2 potrebujeme výsledok, takže začnite kód ako Range („E2“). Hodnota =

Kód:

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

Krok 3: V E2 by hodnota bunky mala byť výsledkom vzorca MATCH. Aby sme teda mohli získať prístup k funkcii VBA MATCH, musíme najskôr použiť vlastnosť „WorksheetFunction“. V tejto vlastnosti dostaneme všetok dostupný zoznam funkcií pracovného hárka.

Krok 4: Tu vyberte funkciu MATCH.

Kód:

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

Krok 5: Teraz sa problém začína, pretože nezískame presný názov syntaxe. Namiesto toho dostaneme syntax ako „Arg1, Arg2, Arg3“, ako je táto. Tu si musíte byť úplne istí syntaxami.

Náš prvý argument je HĽADAŤ HODNOTU. Naša HĽADANÁ HODNOTA je v bunke D2, takže vyberte bunku ako Rozsah („D2“). Hodnota .

Kód:

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

Krok 6: Druhým argumentom je tabuľkové pole. Náš rozsah tabuľkových polí je od A2 do A10. Vyberte rozsah ako „Rozsah („ A2: A10 “)“

Kód:

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

Krok 7: Teraz je posledným argumentom TYP ZHODY. Potrebujeme presnú zhodu, takže hodnotu argumentu zadajte ako nulu.

Kód:

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

Spustením makra dostaneme pozíciu ľubovoľného názvu roku v bunke D2.

Príklad č. 2 - Zhoda VBA z iného hárku

Predpokladajme, že rovnaká množina údajov z vyššie uvedeného je tam na dvoch rôznych listoch. Napríklad pole tabuľky je v názve hárku s názvom „Údajový list“ a vyhľadávacia hodnota je tam v názve hárka s názvom „Hárok s výsledkami“.

V takom prípade musíme pracovné hárky pred odkazom na rozsahy označiť ich názvom. Ďalej je uvedená sada kódov s názvami hárkov.

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ý pod

Príklad č. 3 - Funkcia zhody VBA so slučkami

Ak chceme výsledok v jednej bunke, potom to nie je problém, ale ak musí byť výsledok vo viacerých bunkách, musíme na získanie výsledku vo všetkých bunkách použiť slučku VBA.

Predpokladajme, že máte takéto údaje.

V týchto prípadoch je herkulovská úloha písať zdĺhavé kódy, takže prepneme na cykly. Nižšie je uvedená sada kódov, ktoré za nás urobia prácu.

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

Táto sada kódov prinesie výsledok iba mihnutím oka.

Zaujímavé články...