Vyhľadávacia funkcia Excel VBA

Výborne sme VLookup použili mnohokrát. Je to vo funkcii Insert, ktorá sa používa na načítanie alebo mapovanie akýchkoľvek požadovaných hodnôt. Podobne vo VBA máme aplikáciu Lookup, ktorá funguje rovnako ako Excel Vlookup. VBA Lookup má flexibilnú dátovú štruktúru, pretože môže byť použitá na mapovanie akejkoľvek hodnoty z ľubovoľného druhu tabuľkového poľa. To znamená, že ak použijeme program Excel Vlookup, nebudeme môcť mapovať údaje z pravého stĺpca s údajmi z ľavého stĺpca v jednej syntaxi. Zatiaľ čo vo vyhľadávaní VBA neexistuje žiadna správna štruktúra mapovania. Potrebujeme iba sledovať syntax VBA Lookup. Ak je syntax uspokojená a správne orámovaná, môžeme hodnoty načítať z pravej alebo ľavej strany tabuľky.

Syntax funkcie vyhľadávania VBA:

Kde,

  • Arg1 = hodnota, ktorú chceme vyhľadať.
  • Arg2 = Rozsah stĺpcov alebo tabuliek, z ktorých chceme vyhľadávať.
  • Arg3 = Výsledok ako boolean alebo vektor.

Ako používať funkciu vyhľadávania v Excel VBA?

Naučíme sa, ako používať funkciu vyhľadávania v Exceli pomocou kódu VBA.

Túto šablónu VBA Lookup Excel si môžete stiahnuť tu - VBA Lookup Excel Template

VBA vyhľadávanie - Príklad č. 1

Existuje veľa spôsobov, ako napísať vyhľadávací kód VBA. V tomto príklade uvidíme jednoduchý spôsob, ako napísať vyhľadávanie VBA. Z tohto dôvodu máme k dispozícii súbor údajov, ako je uvedené nižšie. Táto tabuľka obsahuje počet pretekov a priemernú rýchlosť pretekárov. Teraz použijeme tieto údaje na aplikáciu VBA Lookup v tabuľke nižšie s modrými hlavičkami v A8 až B8. Postupujte podľa nasledujúcich krokov:

Krok 1: Otvorte modul na karte ponuky Vložiť, ako je to znázornené nižšie.

Krok 2: Napíšte podprogram pre vykonanú prácu v tomto module. Tu sme vybrali meno ako VBA Lookup.

kód:

 Sub VBA_Lookup1 () End Sub 

Krok 3: Vyberte výstupnú bunku, kde potrebujeme vidieť hodnotu vyhľadávania. Tu je bunkou B9, kde budeme vyhľadávať hodnotu týkajúcu sa názvu „Aniket“, čo je naša vyhľadávacia hodnota.

kód:

 Rozsah sub VBA_Lookup1 () ("B9"). Hodnota Koniec sub 

Krok 4: Teraz použijeme funkciu pracovného hárka a vyberieme vyhľadávaciu funkciu zabudovanú v zozname, ako je uvedené nižšie.

kód:

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

Krok 5: Keď vyberieme funkciu Lookup, uvidíme v syntaxi Arg1, Arg2 a Arg3. Preto najprv umiestnime náš rozsah hodnôt vyhľadávania, ktorý je bunkou A9, namiesto Arg1.

kód:

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

Krok 6: Teraz pre Arg2 vyberte rozsah vyhľadávania, ktorý je z bunky A2: A5.

kód:

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

Krok 7: Nakoniec vyberte rozsah vyhľadávacích hodnôt, ktorý je od B2 do B5 namiesto Arg3.

kód:

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

Krok 8: Spustite kód stlačením klávesu F5 alebo kliknutím na tlačidlo Prehrať umiestnené pod pásmom ponuky. Uvidíme, podľa vyhľadávania, počet pretekov uskutočnených pod menom „Aniket“ je 7.

VBA vyhľadávanie - Príklad č. 2

Existuje aj iný spôsob, ako použiť funkciu vyhľadávania v programe Excel VBA. Na tento účel použijeme rovnaké údaje, aké sme videli v príklade 1. Postupujte podľa nasledujúcich krokov:

Krok 1: Napíšte podprogram pre vyhľadávanie VBA, ako je uvedené nižšie.

kód:

 Sub VBA_Lookup2 () End Sub 

Krok 2: Definujte premennú ako reťazec, ktorý sa použije na mapovanie stĺpca Názov.

kód:

 Sub VBA_Lookup2 () Dim názov ako reťazec End Sub 

Krok 3: V definovanej premennej Name použijeme aplikáciu Vlookup, ako je uvedené nižšie.

kód:

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

Krok 4: Povedzme, že naša hodnota vyhľadávania sa v tabuľke nazýva „Ashwani“.

kód:

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

Krok 5: A rozsah je od A1 do C6 z listu 1.

kód:

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

Krok 6: Ak teraz chceme vidieť priemernú rýchlosť jazdca „Ashwani“, musíme mapovať bunku v syntaxi Vyhľadávania, ktorá je na 3. mieste.

kód:

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

Krok 7: Teraz, keď vidíme priemernú rýchlosť jazdca „Ashwani“, môžeme použiť MsgBox aj Debug Print. Ale použitie Debug Print je oveľa lepšie ako MsgBox. Priraďte tak tlač debugu s definovanou názvom premennej.

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: Teraz otvorte Okamžité okno, ktoré je na karte Zobraziť v ponuke Zobraziť výstup.

Krok 9: Zkompilujte kód a spustite ho. Uvidíme, Lookup mapoval rýchlosť Ashwani a priviedol to do Okamžitého okna ako 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 vyhľadávanie - Príklad č. 3

Pre použitie funkcie vyhľadávania v Exceli VBA, postupujte nasledovne:

Krok 1: Napíšte podprogram pre vyhľadávanie VBA, ako je uvedené nižšie.

kód:

 Sub VBA_Lookup3 () End Sub 

Krok 2: Deklarujte premennú pre Name ako String, ako je to znázornené nižšie.

kód:

 Sub VBA_Lookup3 () Dim názov ako reťazec End Sub 

Krok 3: Teraz pomenujte meno, ktoré chce vyhľadať definovanú premennú Name, ako je to znázornené nižšie.

kód:

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

Krok 4: Teraz pomocou ľubovoľného slova definujte a používajte vyhľadávanie, povedzme LUp . A pri tom použite funkciu Pracovný list s programom Vlookup, ako je to znázornené nižšie.

kód:

 Sub VBA_Lookup3 () Dim name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (MsgBox "Priemerná rýchlosť je:" & LUp End Sub 

Krok 5: Teraz použite rovnakú syntax Vlookup, akú používame v programe Excel. Do Arg1 vložte premennú Name, potom vyberte maticu rozsahu a vyhľadajte hodnotu, ktorú chceme získať. Tu je stĺpec 3, ako je znázornené nižšie.

kód:

 Sub VBA_Lookup3 () Dim name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Priemerná rýchlosť je:" & LUp End Sub 

Krok 6: Teraz použite výstup MsgBox.

kód:

 Sub VBA_Lookup3 () Dim name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Priemerná rýchlosť je:" & LUp End Sub 

Krok 7: Zkompilujte a spustite kód. U názvu Deepinder uvidíme priemernú rýchlosť 88. Kým rovnaká hodnota je uvedená pre názov Deepinder v tabuľke.

kód:

 Sub VBA_Lookup3 () Dim name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Priemerná rýchlosť je:" & LUp End Sub 

Výhody funkcie Excel VBA vyhľadávanie

  • Je to také jednoduché použitie a implementácia ako použitie bežných vynikajúcich vzorcov Vlookup v Exceli.
  • Pri vyhľadávaní VBA môžeme použiť akýkoľvek rozsah a maticu.
  • Pri aplikácii VBA Lookup existuje len veľmi málo alebo žiadne obmedzenia.

Čo je potrebné pamätať

  • Namiesto Vlookup môžeme použiť vyhľadávanie v akejkoľvek situácii.
  • Rozsah vektora vyhľadávania a výsledku by mal byť rovnaký.
  • Po dokončení aplikácie uložte súbor vo formáte Macro Enable, aby sa kód zachoval.
  • Neexistuje žiadna povinná požiadavka, aby sa stĺpec výsledkov zakaždým nachádzal napravo od hodnoty vyhľadávania.

Odporúčané články

Toto je sprievodca funkciou vyhľadávania VBA. Tu diskutujeme o tom, ako používať funkciu vyhľadávania v Excel VBA spolu s praktickými príkladmi a stiahnuteľnou šablónou Excel. Môžete si tiež prečítať naše ďalšie navrhované články -

  1. Zbierka VBA (príklady)
  2. Výkazy VBA IF | Šablóny programu Excel
  3. Ako používať funkciu zoradenia Excel VBA?
  4. VBA počas slučky (príklady so šablónou programu Excel)
  5. VBA Environ

Kategórie: