VLOOKUP v aplikaci Excel VBA | Jak napsat kód VLOOKUP do VBA?

Vlookup je funkce listu v aplikaci Excel, ale lze ji také použít ve VBA, funkce Vlookup je podobná funkcím ve VBA i v listu, protože se jedná o funkci listu metoda pro použití Vlookup ve VBA je prostřednictvím Application.WorksheetFunction metoda a argumenty zůstávají stejné.

Funkce VLOOKUP v aplikaci Excel VBA

Funkce VLOOKUP v aplikaci Excel se používá k hledání hodnoty v poli a vrácení odpovídající hodnoty z jiného sloupce. Hodnota pro hledání by měla být uvedena v prvním sloupci. Je také nutné zmínit, zda hledat přesnou shodu nebo přibližnou shodu. Funkci listu VLOOKUP lze použít při kódování VBA. Tato funkce není integrována do VBA, a proto může volat pouze pomocí listu.

Funkce VLOOKUP v aplikaci Excel má následující syntaxi:

Ve kterém je hledaná hodnota lookup_value, table_arrray je tabulka, col_index_num je číslo sloupce návratové hodnoty, range_lookup znamená, zda je shoda přesná nebo přibližná. range_lookup může být TRUE / FALSE nebo 0/1.

V kódu VBA lze funkci VLOOKUP použít jako:

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

Jak používat VLookup v aplikaci Excel VBA?

Níže uvádíme několik příkladů kódu VLookup v aplikaci Excel VBA.

Tento VLookup v šabloně VBA aplikace Excel si můžete stáhnout zde - VLookup v šabloně VBA aplikace Excel

Kód VLookup v aplikaci Excel VBA Příklad č. 1

Podívejme se, jak můžeme volat funkci listu VLOOKUP v aplikaci Excel VBA.

Předpokládejme, že máte data ID studentů, jména a průměrných známek, které získali.

Nyní chcete vyhledat známky získané studentem s ID 11004.

Chcete-li vyhledat hodnotu, postupujte podle následujících kroků:

  • Přejděte na kartu Vývojář a klikněte na Visual Basic.

  • V okně VBA přejděte na Vložit a klikněte na Modul.

  • Nyní napište kód VBA VLOOKUP. Lze použít následující kód VBA VLOOKUP VBA.

Sub vlookup1 ()

Dim student_id As Long

Tlumené značky tak dlouho

student_id = 11004

Nastavit myrange = Range („B4: D8“)

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

End Sub

Nejprve definujte ID studenta, což je hodnota k vyhledání. Proto definujeme,

student_id = 11004

Dále definujeme rozsah, ve kterém hodnota a návratová hodnota existují. Protože naše data jsou přítomna v buňkách B4: D8, definujeme rozsah-rozsah jako:

Nastavit myrange = Range („B4: D8“)

Nakonec zadáme funkci VLOOKUP pomocí funkce List v proměnné, označí se jako:

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

Chcete-li vytisknout značky v okně se zprávou, použijte následující příkaz:

MsgBox „Student s ID:“ & student_id & „získal“ & známky & „známky“

Vrátí se:

Student s ID: 11004 získal 85 známek.

Nyní klikněte na tlačítko spuštění.

Zjistíte, že se v listu aplikace Excel zobrazí okno se zprávou.

Kód VLookup v příkladu 2 aplikace Excel VBA

Předpokládejme, že máte údaje o jménech zaměstnanců a jejich platu. Tato data jsou uvedena ve sloupcích B a C. Nyní musíte napsat kód VBA VLOOKUP VBA tak, že při daném jménu zaměstnance v buňce F4 bude plat zaměstnance vrácen v buňce G4.

Napíšeme kód VBA VLOOKUP.

  1. Definujte rozsah, ve kterém jsou hodnoty přítomny, tj. Sloupec B a C.

Nastavit myrange = Range („B: C“)

  1. Definujte jméno zaměstnance a zadejte jméno z buňky F4.

Název sady = Rozsah („F4“)

  1. Definujte plat jako buňku G4.

Nastavit plat = Rozsah („G4“)

  1. Nyní zavolejte funkci VLOOKUP pomocí WorksheetFunction ve VBA a zadejte ji v plat.Value. Tím se vrátí hodnota (výstup funkce Vlookup) v buňce G4. Lze použít následující syntaxi:

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

  1. Nyní spusťte modul. Buňka G4 bude obsahovat plat zaměstnance po spuštění kódu VBA VLOOKUP.

Předpokládejme, že v listu změníte hodnotu buňky F4 na „David“ a znovu spustíte kód, vrátí to Davidův plat.

Kód VLookup v aplikaci Excel VBA Příklad č. 3

Předpokládejme, že máte údaje o zaměstnanci vaší společnosti, včetně jejich ID, jmen, oddělení a platu. Pomocí Vlookup ve VBA chcete získat podrobnosti o platu zaměstnance pomocí jeho jména a oddělení.

Jelikož funkce vlookup v aplikaci Excel prohledává hodnotu lookup_value pouze v jednom sloupci, což je první sloupec table_array, je nutné nejprve vytvořit sloupec obsahující „Jméno“ a „Oddělení“ každého zaměstnance.

Ve VBA vložme hodnoty „Název“ a „Oddělení“ do sloupce B listu.

Chcete-li to provést, přejděte na kartu Vývojář a klikněte na Visual Basic. Poté přejděte na vložení a kliknutím na Modul spusťte nový modul.

Nyní napíšeme kód tak, aby sloupec B obsahoval hodnoty sloupce D (název) a sloupce E.

Syntaxe je uvedena jako:

Nejprve použijte smyčku 'for' z i = 4, protože hodnoty v tomto případě začínají od 4. řádku. Smyčka bude pokračovat až do konce posledního řádku sloupce C. Proměnnou i tedy lze použít jako číslo řádku uvnitř smyčky 'pro'.

Poté zadejte hodnotu, která se má přiřadit buňce (číslo_řádku, sloupec B), kterou lze zadat jako buňky (i, „B“). Hodnota, jako buňku (číslo_řádku, sloupec D) ).

Předpokládejme, že chcete přiřadit buňku B5 = D5 & “_” & E5, můžete jednoduše použít kód jako:

Buňky (5, „B“). Hodnota = Buňky (5, „D“). Hodnota & „_“ & Buňky (5, „E“). Hodnota

Nyní se podívejme na vyhledávací hodnotu v poli B5: E24, nejdříve je třeba zadat vyhledávací hodnotu. Vezměme hodnotu (jméno a oddělení) od uživatele. Udělat toto,

  1. definujte tři proměnné, jméno, oddělení a lookup_val jako řetězec.
  2. Vezměte jméno od uživatele. Použijte kód:

name = InputBox („Zadejte jméno zaměstnance“)

Po spuštění kódu se v zadávacím poli zobrazí obsah vstupního pole „Enter the ..“. Řetězec zadaný ve výzvě bude přiřazen k proměnné názvu.

  1. Vezměte oddělení od uživatele. To lze provést podobně jako výše.

department = InputBox („Zadejte oddělení zaměstnance“)

  1. Přiřaďte název a oddělení s „_“ jako oddělovač proměnné lookup_val pomocí následující syntaxe:

lookup_val = jméno & „_“ & oddělení

  1. Napište syntaxi vlookup a vyhledejte lookup_val v rozsahu B5: E24 a vraťte jej v proměnlivém platu.

Inicializujte variabilní plat:

Dim plat Jak dlouho

Pomocí funkce Vlookup vyhledejte lookup_val. Table_array lze zadat jako Range („B: F“) a plat je uveden v 5. sloupci. Lze tedy použít následující syntaxi:

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

  1. Chcete-li tisknout mzdu ve zprávě, použijte syntaxi:

MsgBox (Plat zaměstnance je „& plat)

Nyní spusťte kód. V listu, ve kterém můžete zadat název, se zobrazí okno s výzvou. Po zadání jména (Say Sashi) a kliknutí na OK.

Otevře se další pole, ve kterém můžete vstoupit do oddělení. Po vstupu do oddělení řekněte IT.

Vytiskne plat zaměstnance.

Pokud Vlookup najde libovolného zaměstnance se jménem a oddělením, zobrazí chybu. Předpokládejme, že zadáte název „Vishnu“ a oddělení „IT“, vrátí chybu běhu „1004“.

Chcete-li tento problém vyřešit, můžete v kódu určit, že u tohoto typu chyby bude místo toho vytištěno „Hodnota nenalezena“. Udělat toto,

  1. Před použitím syntaxe vlookup použijte následující kód-

Zpráva o chybě GoTo

Šek:

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

  1. Na konci kódu (Before End Sub) zadejte, že pokud je číslo chyby 1004, vytiskněte v okně se zprávou „Data zaměstnance nejsou k dispozici“. To lze provést pomocí syntaxe:

Zpráva:

Pokud Err.číslo = 1004 potom

MsgBox („Údaje o zaměstnancích nejsou k dispozici“)

Konec, pokud

Modul 1:

Sub vlookup3 ()

Pro i = 4 do buněk (Rows.Count, „C“). End (xlUp). Row

Buňky (i, „B“). Hodnota = Buňky (i, „D“). Hodnota & „_“ & Buňky (i, „E“). Hodnota

Další název iDim jako řetězec

Tlumené oddělení jako řetězec

Dim lookup_val jako řetězec

Dim plat As Longname = InputBox („Zadejte jméno zaměstnance“)

department = InputBox („Zadejte oddělení zaměstnance“)

lookup_val = jméno & „_“ & departmentOn Chyba GoTo zpráva

šek:

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

MsgBox („Plat zaměstnance je“ a plat) Zpráva:

Pokud Err.číslo = 1004 potom

MsgBox („Údaje o zaměstnancích nejsou k dispozici“)

Konec IfEnd Sub

Důležité informace o VLookup v aplikaci Excel VBA

  • Funkci Vlookup lze vyvolat v aplikaci Excel VBA pomocí WorksheetFunction.
  • Syntaxe funkce vlookup zůstává stejná v aplikaci Excel VBA.
  • Když kód VBA vlookup nemůže najít lookup_value, dá chybu 1004.
  • Chyba ve funkci vlookup lze spravovat pomocí příkazu goto, pokud vrátí chybu.