ZOBRAZENIE V Excel VBA - Ako napísať kód VLOOKUP do VBA?

Vlookup je funkcia listu v programe Excel, ale dá sa použiť aj vo VBA. Funkcia Vlookup je podobná funkcii vo VBA aj v hárku, pretože ide o funkciu listu. Metóda použitia Vlookup vo VBA je cez Application.WorksheetFunction metóda a argumenty zostávajú rovnaké.

Funkcia VLOOKUP v programe Excel VBA

Funkcia VLOOKUP v programe Excel sa používa na vyhľadanie hodnoty v poli a vrátenie zodpovedajúcej hodnoty z iného stĺpca. Hodnota, ktorá sa má vyhľadať, by mala byť v prvom stĺpci. Je tiež potrebné spomenúť, či sa má hľadať presná alebo približná zhoda. Pri kódovaní VBA je možné použiť funkciu listu VLOOKUP. Táto funkcia nie je zabudovaná do VBA, a preto je možné volať iba pomocou hárka.

Funkcia VLOOKUP v programe Excel má nasledujúcu syntax:

V ktorom je hľadaná hodnota hľadaná hodnota, tabuľková tabuľka, tabuľková tabuľka, col_index_num je číslo stĺpca návratovej hodnoty, range_lookup znamená, či je zhoda presná alebo približná. range_lookup môže byť TRUE / FALSE alebo 0/1.

V kóde VBA možno funkciu VLOOKUP použiť ako:

Application.WorksheetFunction.vlookup (lookup_value, table_array, col_index_num, range_lookup)

Ako používať VLookup v programe Excel VBA?

Ďalej uvádzame niekoľko príkladov kódu VLookup v programe Excel VBA.

Kód VLookup v príklade 1 aplikácie Excel VBA

Pozrime sa, ako môžeme nazvať funkciu listu VLOOKUP v programe Excel VBA.

Predpokladajme, že obsahuje údaje o ID, mene a priemerných známkach, ktoré študenti získali.

Teraz chcete vyhľadať známky získané študentom s ID 11004.

Pri vyhľadávaní hodnoty postupujte podľa nasledujúcich krokov:

  • Prejdite na kartu Vývojár a kliknite na položku Visual Basic.
  • V okne VBA choďte na Vložiť a kliknite na Modul.
  • Teraz napíšte kód VBA VLOOKUP. Môže sa použiť nasledujúci kód VBA VLOOKUP VBA.

Sub vlookup1 ()
Dim student_id As Long
Dim brands As Long
student_id = 11004
Set myrange = Range (“B4: D8”)
brands = Application.WorksheetFunction.VLookup (student_id, myrange, 3, False)
End Sub

Najskôr definujte ID študenta, čo je hodnota, ktorá sa má vyhľadať. Preto definujeme,

student_id = 11004

Ďalej definujeme rozsah, v ktorom existuje hodnota a návratová hodnota. Pretože naše údaje sú prítomné v bunkách B4: D8, definujeme rozsah-myrange ako:

Nastaviť myrange = rozsah („B4: D8“)

Nakoniec zadáme funkciu VLOOKUP pomocou funkcie List do premennej, ktorá bude označená ako:

známky = Application.WorksheetFunction.VLookup (student_id, myrange, 3, False)

Ak chcete vytlačiť značky v okne správy, použite nasledujúci príkaz:

MsgBox „Študent s ID:“ & student_id & „získané“ & známky & „známky“

Vráti sa:

Študent s ID: 11004 získal 85 známok.

Teraz kliknite na tlačidlo spustenia.

Všimnite si, že v hárku programu Excel sa zobrazí okno so správou.

Kód VLookup v príklade 2 aplikácie Excel VBA

Predpokladajme, že máte údaje o menách zamestnancov a ich plate. Tieto údaje sú uvedené v stĺpcoch B a C. Teraz musíte napísať kód VBA VLOOKUP VBA tak, aby pri zadaní mena zamestnanca v bunke F4 bol plat zamestnanca vrátený v bunke G4.

Napíšme kód VBA VLOOKUP.

  1. Definujte rozsah, v ktorom sú hodnoty prítomné, tj. Stĺpce B a C.

Nastaviť myrange = rozsah („B: C“)

  1. Definujte meno zamestnanca a zadajte meno z bunky F4.

Názov sady = Rozsah („F4“)

  1. Definujte plat ako bunku G4.

Nastavený plat = rozsah („G4“)

  1. Teraz zavolajte funkciu VLOOKUP pomocou WorksheetFunction vo VBA a zadajte ju v plate.Value. Týmto sa vráti hodnota (výstup funkcie Vlookup) v bunke G4. Môžete použiť nasledujúcu syntax:

plate.Value = Application.WorksheetFunction.VLookup (name, myrange, 2, False)

  1. Teraz spustite modul. Bunka G4 bude obsahovať plat zamestnanca po spustení kódu VBA VLOOKUP.

Predpokladajme, že v pracovnom hárku zmeníte hodnotu bunky F4 na „David“ a znovu spustíte kód, ktorý vráti Davidov plat.

Kód VLookup v programe Excel VBA, príklad č. 3

Predpokladajme, že máte k dispozícii údaje o zamestnancovi vašej spoločnosti vrátane ich ID, mien, oddelenia a platu. Pomocou Vlookup vo VBA chcete získať platové údaje zamestnanca pomocou jeho mena a oddelenia.

Pretože funkcia vlookup v programe Excel prehľadáva hodnotu_vyhľadávania iba v jednom stĺpci, ktorý je prvým stĺpcom tabuľky_array, je potrebné najskôr vytvoriť stĺpec obsahujúci „Meno“ a „Oddelenie“ každého zamestnanca.

V jazyku VBA vložíme do stĺpca B tabuľky hodnoty „Názov“ a „Oddelenie“.

Ak to chcete urobiť, prejdite na kartu Vývojár a kliknite na položku Visual Basic. Potom choďte na Vložiť a kliknutím na Modul spustite nový modul.

Poďme teraz napísať kód tak, aby stĺpec B obsahoval hodnoty stĺpca D (meno) a stĺpca E.

Syntax je uvedená ako:

Najskôr použite slučku 'for' z i = 4, pretože hodnoty v tomto prípade začínajú od 4. riadku. Smyčka bude pokračovať až do konca posledného riadku stĺpca C. Takže premennú I môžem použiť ako číslo riadku vo vnútri slučky „for“.

Potom zadajte hodnotu, ktorá sa má priradiť bunke (číslo_riadku, stĺpec B), ktorú je možné zadať ako bunky (i, „B“). Hodnota, ako bunku (číslo_riadku, stĺpec D) ).

Predpokladajme, že chcete priradiť bunku B5 = D5 & „_“ & E5, takže kód môžete jednoducho použiť ako:

Bunky (5, „B“). Hodnota = bunky (5, „D“). Hodnota & „_“ & Bunky (5, „E“). Hodnota

Teraz poďme hľadať hľadanú hodnotu v poli B5: E24. Najprv musíte zadať vyhľadávaciu hodnotu. Zoberme hodnotu (meno a oddelenie) od používateľa. Urobiť to,

  1. definujte ako reťazec tri premenné, meno, oddelenie a lookup_val.
  2. Vezmite meno od používateľa. Použite kód:

name = InputBox („Zadajte meno zamestnanca“)

Obsah zadávacieho poľa „Zadajte …“ sa zobrazí v poli s výzvou po spustení kódu. Reťazec zadaný vo výzve bude priradený k premennej názvu.

  1. Vezmite oddelenie od používateľa. Možno to urobiť podobne ako vyššie.

department = InputBox („Zadajte oddelenie zamestnanca“)

  1. Priraďte názov a oddelenie s „_“ ako oddeľovač k premennej lookup_val pomocou nasledujúcej syntaxe:

lookup_val = meno & „_“ & oddelenie

  1. Napíšte syntax vlookup na vyhľadanie hodnoty lookup_val v rozsahu B5: E24 ju vráti v variabilnom plate.

Inicializovať variabilný plat:

Dim plat Ako dlho

Pomocou funkcie Vlookup vyhľadajte lookup_val. Table_array môže podávať ako rozsah ( "B: F"), a plat je prítomný v 5 th kolóny. Môže sa teda použiť táto syntax:

plat = Application.WorksheetFunction.VLookup (look__val, Range („B: F“), 5, False)

  1. Ak chcete vytlačiť plat v okne správy, použite syntax:

MsgBox (Plat zamestnanca je „& plat)

Teraz spustite kód. V pracovnom hárku sa zobrazí okno s výzvou, do ktorého môžete zadať názov. Po zadaní názvu (Say Sashi) a kliknutí na tlačidlo OK.

Otvorí sa ďalšie políčko, v ktorom môžete vstúpiť do oddelenia. Po vstupe do oddelenia povedzte IT.

Vytlačí plat zamestnancovi.

Ak Vlookup dokáže nájsť ktoréhokoľvek zamestnanca s menom a oddelením, urobí chybu. Predpokladajme, že dáte názov „Vishnu“ a oddelenie „IT“, vráti chybu za chodu „1004“.

Ak chcete vyriešiť tento problém, môžete v kóde uviesť, že pri tomto type chyby namiesto toho vytlačte „Hodnota sa nenašla“. Urobiť to,

  1. Pred použitím syntaxe vlookup použite nasledujúci kód

Správa o chybe GoTo

Kontrola:

Trailing code (of Check :) will be monitored, and if it receive an error, it will go to the “message” statement

  1. Na konci kódu (Before End Sub) uveďte, že ak je číslo chyby 1004, vytlačte do poľa správy „Údaje o zamestnancovi nie sú k dispozícii“. To je možné vykonať pomocou syntaxe:

Správa:

Ak Err.číslo = 1004 potom

MsgBox („Údaje o zamestnancovi nie sú k dispozícii“)

Koniec Ak

Modul 1:

Sub vlookup3 ()
Pre i = 4 do buniek (Rows.Count, „C“). End (xlUp). Radové
bunky (i, „B“). Hodnota = bunky (i, „D“). Hodnota & „_ “& Bunky (i,„ E “). Hodnota
Ďalej Názov iDim Ako String
Dim oddelenie Ako String
Dim lookup_val Ako String
Dim plat As Longname = InputBox („ Zadajte meno zamestnanca “)
department = InputBox („ Zadajte oddelenie zamestnanec “)
lookup_val = meno &„ _ “& departmentOn Chyba
Kontrola správy GoTo :
plat = Application.WorksheetFunction.VLookup (look__val, Range („ B: F “), 5, False)
MsgBox („ Plat zamestnanca je „& Plat) Správa:
Ak Err.číslo = 1004, potom
MsgBox („ Údaje o zamestnancovi nie sú k dispozícii “)
Koniec IfEnd Sub

Dôležité informácie o funkcii VLookup v programe Excel VBA

  • Funkciu Vlookup je možné volať v programe Excel VBA pomocou nástroja WorksheetFunction.
  • Syntax funkcie vlookup zostáva v aplikácii Excel VBA rovnaká.
  • Keď kód VBA vlookup nemôže nájsť lookup_value, spôsobí chybu 1004.
  • Chyba vo funkcii vlookup sa dá spravovať pomocou príkazu goto, ak vráti chybu.

Zaujímavé články...