VLOOKUP az Excel VBA-ban - Hogyan írjunk VLOOKUP kódot a VBA-ba?

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:

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.

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.
  • A VBA ablak alatt lépjen a Beszúrás elemre, és kattintson a Modul elemre.
  • Í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 ”

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.

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.

Írjuk meg a VBA VLOOKUP kódot.

  1. Határozza meg azt a tartományt, amelyben az értékek jelen vannak, azaz a B és C oszlopokat

Set myrange = Range ("B: C")

  1. Adja meg az alkalmazott nevét, és írja be a nevet az F4 cellából.

Set name = Tartomány („F4”)

  1. Határozza meg a fizetést G4 cellaként.

Fizetés beállítása = Tartomány („G4”)

  1. 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)

  1. Most futtassa a modult. A G4 cella az alkalmazott fizetését tartalmazza, miután futtatta a VBA VLOOKUP kódot.

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.

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.

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ő:

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

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,

  1. három változót, nevet, osztályt és lookup_val adjon meg karakterláncként.
  2. 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.

  1. 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”)

  1. 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

  1. Í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)

  1. A fizetés üzenetmezőbe történő nyomtatásához használja a szintaxist:

MsgBox (A munkavállaló fizetése ”és fizetés)

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.

Megnyit egy újabb dobozt, amelyben beléphet az osztályra. Miután belépett az osztályra, mondja ki az IT-t.

Ez kinyomtatja az alkalmazott fizetését.

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.

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,

  1. 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

  1. 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

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.

érdekes cikkek...