A Vlookup egy munkalapfüggvény az Excelben, de használható a VBA-ban is, a Vlookup funkcionalitása hasonló a VBA és a munkalapok funkcionalitásához, mivel ez egy munkalapfüggvény, a Vlookup VBA-ban való alkalmazásának módja az Alkalmazáson keresztül történik. módszer és az érvek ugyanazok maradnak.
VLOOKUP funkció az Excel VBA-ban
Az Excel VLOOKUP függvényével kereshet egy értéket egy tömbben, és visszaküldi annak megfelelő értékét egy másik oszlopból. A keresendő értéknek meg kell jelennie az első oszlopban. Meg kell említeni azt is, hogy pontos vagy közelítő mérkőzést kell-e keresni. A VLOOKUP munkalapfüggvény használható a VBA kódolásban. A függvény nem beépített VBA, így csak a munkalap használatával hívható meg.
Az Excel VLOOKUP függvényének a következő szintaxisa van:
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__2.png.webp)
Amelyben a lookup_value a keresendő érték, a table_arrray a táblázat, a col_index_num a visszatérési érték oszlopszáma, a range_lookup azt jelzi, ha az egyezés pontos vagy közelítő. A range_lookup lehet IGAZ / HAMIS vagy 0/1.
A VBA kódban a VLOOKUP függvény használható:
Application.WorksheetFunction.vlookup (keresési_érték, tábla_rajz, col_index_num, tartomány_keresés)
Hogyan használható a VLookup az Excel VBA-ban?
Az alábbiakban bemutatunk néhány példát az Excel VBA VLookup kódjára.
VLookup kód az Excel VBA 1. példában
Nézzük meg, hogyan hívhatjuk a VLOOKUP munkalapfüggvényt az Excel VBA-ban.
Tegyük fel, hogy a diákok személyazonosságáról, nevéről és az általuk megszerzett átlagértékekről adatot ad.
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__3.png.webp)
Most meg szeretné keresni azokat a jegyeket, amelyeket egy 11004 azonosítójú hallgató szerzett.
Az érték megkereséséhez kövesse az alábbi lépéseket:
- Menjen a Fejlesztő fülre, és kattintson a Visual Basic elemre.
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__4.png.webp)
- A VBA ablak alatt lépjen a Beszúrás elemre, és kattintson a Modul elemre.
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__5.png.webp)
- Írja be a VBA VLOOKUP kódot. A következő VBA VLOOKUP kód használható.
Sub vlookup1 ()
Dim student_id Olyan hosszú
Dim jelek,
amíg Long student_id = 11004
Set myrange = Range (“B4: D8”)
marks = Application.WorksheetFunction.VLookup (student_id, myrange, 3, False)
End Sub
Először határozzon meg egy diák azonosítót, amely a keresendő érték. Ezért meghatározzuk,
student_id = 11004
Ezután meghatározzuk azt a tartományt, amelyben az érték és a visszatérési érték létezik. Mivel adataink a B4: D8 cellákban vannak, egy tartomány-tartományot definiálunk:
Set myrange = Range ("B4: D8")
Végül a VLOOKUP függvényt a Munkalap függvény segítségével adjuk meg egy változóban, a következőképpen jelölve:
jelek = Application.WorksheetFunction.VLookup (student_id, myrange, 3, False)
Az üzenetmezőben lévő jelölések kinyomtatásához használjuk a következő parancsot:
MsgBox „Diák azonosítóval:” & student_id & „megszerzett” & érdemjegyek és jelölések ”
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__6.png.webp)
Vissza fog térni:
Egy 11004 azonosítójú tanuló 85 érdemjegyet kapott.
Most kattintson a futtatás gombra.
Észre fogja venni, hogy egy üzenetmező jelenik meg az Excel lapon.
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__7.png.webp)
VLookup kód az Excel VBA 2. példában
Tegyük fel, hogy rendelkezik az alkalmazottak nevével és fizetésével kapcsolatos adatokkal. Ezeknek az adatoknak a B és C oszlopai vannak. Most meg kell írnia egy VBA VLOOKUP kódot, amely megadja az alkalmazott nevét egy cellában, F4, a munkavállaló fizetése visszatér a G4 cellába.
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__8.png.webp)
Írjuk meg a VBA VLOOKUP kódot.
- Határozza meg azt a tartományt, amelyben az értékek jelen vannak, azaz a B és C oszlopokat
Set myrange = Range ("B: C")
- Adja meg az alkalmazott nevét, és írja be a nevet az F4 cellából.
Set name = Tartomány („F4”)
- Határozza meg a fizetést G4 cellaként.
Fizetés beállítása = Tartomány („G4”)
- Most hívja meg a VLOOKUP függvényt a VBA WorksheetFunction segítségével, és írja be a fizetésbe. Ez visszaadja az értéket (a Vlookup függvény kimenete) a G4 cellában. A következő szintaxis használható:
fizetés.Value = Application.WorksheetFunction.VLookup (név, tartomány, 2, hamis)
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__9.png.webp)
- Most futtassa a modult. A G4 cella az alkalmazott fizetését tartalmazza, miután futtatta a VBA VLOOKUP kódot.
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__10.png.webp)
Tegyük fel, hogy megváltoztatja az F4 cella értékét „David” -re a munkalapon, és újra futtatja a kódot, és ez megadja David fizetését.
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__11.png.webp)
VLookup kód az Excelben VBA 3. példa
Tegyük fel, hogy megvan a vállalat alkalmazottjának adatai, megvan az azonosítója, neve, osztálya és fizetése. A Vlookup használatával a VBA-ban meg akarja szerezni az alkalmazottak fizetési adatait a nevével és az osztályával.
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__12.png.webp)
Mivel az excelben található vlookup függvény a keresési_értéket csak egyetlen oszlopban keresi, amely a table_array első oszlopa, ezért először el kell készítenie egy oszlopot, amely tartalmazza az egyes alkalmazottak „Név” és „Osztály” elemét.
VBA-ban illesszük be a „Név” és a „Részleg” értékeket a munkalap B oszlopába.
Ehhez lépjen a Fejlesztő fülre, és kattintson a Visual Basic elemre. Ezután lépjen a Beszúrás elemre, és kattintson a Modul gombra egy új modul indításához.
Írjunk most kódot úgy, hogy a B oszlop tartalmazza a D oszlop (név) és az E oszlop értékeit.
A szintaxis a következő:
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__13.png.webp)
Először is, használja a „a” hurok az i = 4, mivel az értékek kezdve a 4 -én sor ebben az esetben. A ciklus a C oszlop utolsó sorának végéig folytatódik. Tehát az I változó használható sorszámként a 'for' cikluson belül.
Ezután írja be a cellához rendelendő értéket (sorszám, B oszlop), amelyet cellákként adhatunk meg (i, „B”). Értékként cellát (sorszám, D oszlop) és „_” & cellát (sorszám, E oszlop) ).
Tegyük fel, hogy a B5 = D5, „_” és E5 cellához kíván hozzárendelni, egyszerűen használhatja a kódot:
Cellák (5, „B”). Érték = Cellák (5, „D”). Érték & „_” és cellák (5, „E”). Érték
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__14.png.webp)
Most keresse meg a keresési értéket a B5: E24 tömbben. Először meg kell adnia a keresési értéket. Vegyük át az értéket (név és osztály) a felhasználótól. Ezt csináld meg,
- három változót, nevet, osztályt és lookup_val adjon meg karakterláncként.
- Vegyük a név bevitelét a felhasználótól. Használja a kódot:
név = InputBox („Írja be az alkalmazott nevét”)
A kód futtatásakor az „Enter the…” beviteli mező tartalma megjelenik a prompt mezőben. A promptba beírt karakterlánc a névváltozóhoz lesz rendelve.
- Vegye ki az osztályt a felhasználótól. A fentiekhez hasonlóan elvégezhető.
osztály = InputBox („Írja be az alkalmazott osztályát”)
- Rendelje hozzá a nevet és a részleget a _ névvel elválasztóként a lookup_val változóhoz a következő szintaxissal:
lookup_val = név & „_” & részleg
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__15.png.webp)
- Írja meg a vlookup szintaxist, hogy a B5 tartományban keresse meg a keresési_értéket: az E24 változó fizetésként adja vissza.
Inicializálja a változó fizetést:
Gyenge fizetés olyan hosszú
A Vlookup függvény segítségével keresse meg a lookup_val értéket. A tábla_tömb lehet adni, mint tartomány ( „B: F”), és a fizetés jelen van a 5 -én oszlopot. Így a következő szintaxis használható:
fizetés = Application.WorksheetFunction.VLookup (look_val, Range („B: F”), 5, False)
- A fizetés üzenetmezőbe történő nyomtatásához használja a szintaxist:
MsgBox (A munkavállaló fizetése ”és fizetés)
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__16.png.webp)
Most futtassa a kódot. A munkalapon megjelenik egy felszólító mező, amelybe beírhatja a nevet. Miután megadta a nevet (Say Sashi), és kattintson az OK gombra.
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__17.png.webp)
Megnyit egy újabb dobozt, amelyben beléphet az osztályra. Miután belépett az osztályra, mondja ki az IT-t.
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__18.png.webp)
Ez kinyomtatja az alkalmazott fizetését.
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__19.png.webp)
Ha a Vlookup képes megtalálni a nevével és részlegével rendelkező munkatársakat, akkor hibát ad. Tegyük fel, hogy megadja a „Visnu” és az „IT” osztály nevét, ez a „1004” futási hibát adja vissza.
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__20.png.webp)
A probléma megoldása érdekében megadhatja a kódban, hogy az ilyen típusú hibákra nyomtassa ki az „Érték nem található” szót. Ezt csináld meg,
- A vlookup szintaxis használata előtt használja a következő kód-
On Error GoTo Message
Jelölje be:
A (Check :) záró kódját figyelemmel kísérjük, és ha hibát kap, akkor az „message” utasításra megy
- A kód végén (Before End Sub) adja meg, hogy ha a hibaszám 1004, akkor nyomtassa ki az „Alkalmazotti adatok nincsenek” üzenetmezőbe. Ez a szintaxis segítségével történhet:
Üzenet:
Ha Err.Number = 1004 Akkor
MsgBox („Az alkalmazottak adatai nincsenek megadva”)
Vége Ha
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__21.png.webp)
![](https://cdn.know-base.net/7197137/vlookup_in_excel_vba_how_to_write_vlookup_code_in_vba__22.png.webp)
1. modul:
Sub vlookup3 ()Az i = 4 cellákhoz (Rows.Count, „C”). Vége (xlUp). Soros
cellák (i, „B”). Érték = Cellák (i, „D”). Érték és „_ "& Cells (i," E "). Érték
Következő iDim név mint String
Dim részleg As String
Dim lookup_val As String
Dim fizetés As Longname = InputBox (" Írja be az alkalmazott nevét ")
osztály = InputBox (" Írja be a az alkalmazott ”)
lookup_val = név &„ _ ”& osztály On GoTo üzenetellenőrzés
:
fizetés = Application.WorksheetFunction.VLookup (lookup_val, Range („ B: F ”), 5, False)
MsgBox („ Az alkalmazott fizetése ”&
Fizetés ) Üzenet: Ha Tév.szám = 1004, akkor
MsgBox („ Az alkalmazottak adatai nincsenek ”)
EndEnd Sub befejezése
Emlékezetes dolgok az VLookupról az Excel VBA-ban
- A Vlookup függvény meghívható az Excel VBA alkalmazásban a WorksheetFunction használatával.
- A vlookup függvény szintaxisa ugyanaz marad az Excel VBA-ban.
- Ha a VBA vlookup kód nem találja a keresési_értéket, akkor 1004-es hibát fog okozni.
- A vlookup függvény hibája egy goto utasítással kezelhető, ha hibát ad vissza.