Funkce vyhledávání Excel VBA

Výborně jsme VLookup použili mnohokrát. Je to ve funkci Vložit, která se používá k načtení nebo mapování všech požadovaných hodnot. Podobně ve VBA máme aplikaci Lookup, která funguje stejně jako aplikace Excel Vlookup. VBA Lookup má flexibilní datovou strukturu, kterou lze použít k mapování jakékoli hodnoty z jakéhokoli pole tabulky. To znamená, že pokud použijeme Excel Vlookup, nebudeme schopni mapovat data pravého sloupce s údaji levého sloupce v jedné syntaxi. Zatímco ve vyhledávání VBA neexistuje správná struktura mapování. Musíme pouze sledovat syntaxi vyhledávání VBA. Pokud je syntaxe uspokojená a správně orámovaná, můžeme načíst hodnoty z pravé nebo levé strany tabulky.

Syntaxe funkce vyhledávání VBA:

Kde,

  • Arg1 = Hodnota, kterou chceme vyhledat.
  • Arg2 = Rozsah sloupců nebo tabulek, z nichž chceme vyhledat.
  • Arg3 = Výsledek jako booleovský nebo vektorový.

Jak používat vyhledávací funkci v aplikaci Excel VBA?

Naučíme se, jak používat funkci vyhledávání v Excelu pomocí kódu VBA.

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

VBA vyhledávání - Příklad č. 1

Existuje mnoho způsobů, jak napsat kód vyhledávání VBA. V tomto příkladu uvidíme jednoduchý způsob, jak napsat VBA Lookup. K tomu máme sadu dat, jak je uvedeno níže. Tato tabulka obsahuje počet závodů a průměrnou rychlost závodníků. Nyní použijeme tato data k použití VBA Lookup v níže uvedené tabulce s modrými záhlavími v A8 až B8. Postupujte podle následujících kroků:

Krok 1: Otevřete modul na kartě nabídky Vložit, jak je ukázáno níže.

Krok 2: Napište podprogram pro provedenou práci v tomto modulu. Zde jsme vybrali jméno jako VBA Lookup.

Kód:

 Sub VBA_Lookup1 () End Sub 

Krok 3: Vyberte výstupní buňku, kde musíme vidět hodnotu vyhledávání. Zde je buňkou B9, kde budeme vyhledávat hodnotu týkající se názvu „Aniket“, což je naše vyhledávací hodnota.

Kód:

 Rozsah sub VBA_Lookup1 () ("B9"). Hodnota Konec Sub 

Krok 4: Nyní použijeme funkci Worksheet Function a vybereme funkci Lookup zabudovanou v seznamu, jak je ukázáno níže.

Kód:

 Rozsah sub VBA_Lookup1 () ("B9"). Hodnota = WorksheetFunction.Lookup End Sub 

Krok 5: Jakmile vybereme funkci vyhledávání, uvidíme ve své syntaxi Arg1, Arg2 a Arg3. Za tímto účelem nejprve umístíme náš rozsah hodnot vyhledávání, který je buňkou A9, místo Arg1.

Kód:

 Rozsah Sub VBA_Lookup1 () ("B9"). Hodnota = WorksheetFunction.Lookup (Range ("A9")). Hodnota, End Sub 

Krok 6: Nyní pro Arg2 vyberte rozsah vyhledávání, který je z buňky A2: A5.

Kód:

 Rozsah sub VBA_Lookup1 () ("B9"). Hodnota = WorksheetFunction.Lookup (Range ("A9").) Hodnota, rozsah ("A2: A5"), End Sub 

Krok 7: Nakonec vyberte rozsah hodnot vyhledávání, který je od B2 do B5 místo Arg3.

Kód:

 Rozsah Sub VBA_Lookup1 () ("B9"). Hodnota = WorksheetFunction.Lookup (Range ("A9"). Value, Range ("A2: A5"), Range ("B2: B5")) End Sub 

Krok 8: Spusťte kód stisknutím klávesy F5 nebo kliknutím na tlačítko Přehrát umístěné pod pruhem nabídky. Uvidíme, podle vyhledávání, počet závodů pod názvem „Aniket“ je 7.

VBA vyhledávání - Příklad č. 2

Existuje další způsob, jak použít funkci vyhledávání v Excel VBA. K tomu použijeme stejná data, jaká jsme viděli v příkladu 1. Postupujte podle následujících kroků:

Krok 1: Napište podprogram pro vyhledávání VBA, jak je ukázáno níže.

Kód:

 Sub VBA_Lookup2 () End Sub 

Krok 2: Definujte proměnnou jako řetězec, který bude použit k mapování sloupce Název.

Kód:

 Sub VBA_Lookup2 () Dim name jako String End Sub 

Krok 3: V definované proměnné Name použijeme aplikaci Vlookup, jak je ukázáno níže.

Kód:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup (End Sub 

Krok 4: Řekněme, že naše vyhledávací hodnota je v tabulce pojmenována „Ashwani“.

Kód:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", End Sub 

Krok 5: Rozsah je od A1 do C6 z List1.

Kód:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), End Sub 

Krok 6: Pokud nyní chceme vidět průměrnou rychlost jezdce „Ashwani“, musíme mapovat buňku v syntaxi vyhledávání, která je na 3. místě.

Kód:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) End Sub 

Krok 7: Nyní, abychom viděli průměrnou rychlost jezdce „Ashwani“, můžeme použít MsgBox a Debug Print. Ale použití Debug Print je mnohem lepší než MsgBox. Přiřaďte Debug Print s definovanou proměnnou Name.

Kód:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) Debug.Print Name End Sub Sub 

Krok 8: Nyní otevřete Okamžité okno, které je na kartě Zobrazit v nabídce Zobrazit výstup.

Krok 9: Zkompilujte kód a spusťte jej. Uvidíme, Lookup mapoval rychlost Ashwani a přenesl to do Okamžitého okna jako 86 .

Kód:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup ("Ashwani", Sheet1.Range ("A1: C6"), 3) Debug.Print Name End Sub Sub 

VBA vyhledávání - Příklad č. 3

Pro použití funkce vyhledávání v Excelu VBA postupujte následovně:

Krok 1: Napište podprogram pro vyhledávání VBA, jak je ukázáno níže.

Kód:

 Sub VBA_Lookup3 () End Sub 

Krok 2: Deklarujte proměnnou pro Název jako Řetězec, jak je ukázáno níže.

Kód:

 Sub VBA_Lookup3 () Dim name jako String End Sub 

Krok 3: Nyní přiřaďte název, který chce vyhledat definovanou proměnnou Název, jak je uvedeno níže.

Kód:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" End Sub 

Krok 4: Nyní pomocí libovolného slova definujte a použijte vyhledávání, řekněme LUp . A v tomto použití funkce listu s Vlookup, jak je uvedeno níže.

Kód:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (MsgBox "Průměrná rychlost je:" & LUp End Sub 

Krok 5: Nyní použijte stejnou syntaxi Vlookup, jakou používáme v Excelu. Do Arg1 vložte proměnnou Name, pak vyberte matici rozsahu a vyhledejte vzestupnou hodnotu, kterou chceme získat. Zde je sloupec 3, jak je uvedeno níže.

Kód:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Průměrná rychlost je:" & LUp End Sub 

Krok 6: Nyní použijte MsgBox k zobrazení výstupu.

Kód:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Průměrná rychlost je:" & LUp End Sub 

Krok 7: Kompilace a spuštění kódu. U názvu „Deepinder“ uvidíme, že průměrná rychlost je 88. Zatímco stejná hodnota je uvedena pro jméno Deepinder v tabulce.

Kód:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Průměrná rychlost je:" & LUp End Sub 

Výhody funkce Excel VBA vyhledávání

  • Používání a implementace je stejně snadné jako použití běžných vynikajících vzorců Vlookup v Excelu.
  • Při vyhledávání VBA můžeme použít jakýkoli rozsah a matici.
  • Při použití vyhledávání VBA existuje jen velmi málo nebo žádná omezení.

Co si pamatovat

  • Místo Vlookupu můžeme použít vyhledávání v jakékoli situaci.
  • Rozsah vektoru vyhledávání a vektoru výsledků by měl být stejný.
  • Po dokončení aplikace uložte soubor ve formátu Macro Enable, abyste kód zachovali.
  • Neexistuje žádný povinný požadavek, aby byl sloupec výsledků pokaždé napravo od hodnoty vyhledávání.

Doporučené články

Toto je průvodce funkcí vyhledávání VBA. Zde diskutujeme o tom, jak používat funkci vyhledávání v Excelu VBA, spolu s praktickými příklady a šablonou Excel ke stažení. Můžete si také prohlédnout naše další doporučené články -

  1. Kolekce VBA (příklady)
  2. VBA IF Prohlášení | Šablony Excelu
  3. Jak používat funkci řazení Excel VBA?
  4. VBA while Loop (příklady se šablonou Excel)
  5. VBA Environ

Kategorie: