VLOOKUP „Excel VBA“ Kaip parašyti VLOOKUP kodą VBA?

„Vlookup“ yra „Excel“ darbalapio funkcija, tačiau ji taip pat gali būti naudojama VBA, „Vlookup“ funkcionalumas yra panašus į „VBA“ ir abiejų darbalapių funkcionalumą, nes tai yra darbalapio funkcija, kurią naudojant „Vlookup“ VBA galima naudoti naudojant „Application“. metodas ir argumentai lieka tie patys.

VLOOKUP funkcija „Excel VBA“

„Excel“ funkcija VLOOKUP naudojama masyvo vertei ieškoti ir atitinkamą reikšmę grąžinti iš kito stulpelio. Paieškos vertė turėtų būti pirmame stulpelyje. Taip pat reikia paminėti, ar ieškoti tikslios, ar apytikslės atitikties. Darbalapio funkcija VLOOKUP gali būti naudojama VBA koduojant. Funkcija nėra sukurta VBA, todėl ją galima iškviesti tik naudojant darbalapį.

„Excel“ VLOOKUP funkcija turi šią sintaksę:

Kuriame „lookup_value“ yra ieškoma reikšmė, „table_arrray“ yra lentelė, „col_index_num“ yra grąžinimo vertės stulpelio numeris, „range_lookup“ reiškia, ar atitiktis tiksli ar apytikslė. range_lookup gali būti TIKRA / NETIESA arba 0/1.

VBA kode funkciją VLOOKUP galima naudoti kaip:

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

Kaip naudoti „VLookup“ programoje „Excel VBA“?

Toliau pateikiami keli „VLookup“ kodo „Excel VBA“ pavyzdžiai.

Šį „VLookup“ „Excel“ VBA šablone galite atsisiųsti čia - „VLookup“ „Excel“ VBA šablone

VLookup kodas „Excel“ VBA 1 pavyzdyje

Pažiūrėkime, kaip „Excel VBA“ galime iškviesti darbalapio funkciją VLOOKUP.

Tarkime, kad turite duomenų apie studentų tapatybę, vardą ir jų gautus vidutinius pažymius.

Dabar norite ieškoti studento pažymėjimų, pažymėtų ID 11004.

Norėdami ieškoti vertės, atlikite šiuos veiksmus:

  • Eikite į skirtuką „Kūrėjas“ ir spustelėkite „Visual Basic“.

  • Po VBA langu eikite į Įterpti ir spustelėkite Modulis.

  • Dabar parašykite VBA VLOOKUP kodą. Galima naudoti šį VBA VLOOKUP kodą.

„Sub vlookup1“ ()

Blankus studento_idas toks ilgas

Blankus žymi kaip ilgą

studento_id = 11004

Nustatyti diapazoną = Diapazonas („B4: D8“)

žymės = Application.WorksheetFunction.VLookup (studento_id, myrange, 3, False)

Pabaigos sub

Pirmiausia apibrėžkite studento ID, kuris yra paieškos vertė. Todėl mes apibrėžiame,

studento_id = 11004

Toliau mes apibrėžiame diapazoną, kuriame egzistuoja vertė ir grąžinimo vertė. Kadangi mūsų duomenys yra ląstelėse B4: D8, mes nustatome diapazono diapazoną:

Nustatyti diapazoną = Diapazonas („B4: D8“)

Galiausiai įvedame funkciją VLOOKUP, naudodami kintamojo funkciją „Worksheet“, pažymėtą kaip:

žymės = Application.WorksheetFunction.VLookup (studento_id, myrange, 3, False)

Norėdami atsispausdinti žymes pranešimo laukelyje, naudokime šią komandą:

„MsgBox“ „Studentas su ID:“ & studento ID ir „gautas“ ir „pažymys“.

Jis grįš:

Studentas, turintis ID: 11004, gavo 85 balus.

Dabar spustelėkite mygtuką paleisti.

Pastebėsite, kad „Excel“ lape pasirodys pranešimų laukelis.

„VLookup“ kodas „Excel“ VBA pavyzdyje Nr. 2

Tarkime, kad turite darbuotojų vardų ir pavardžių duomenis. Šiems duomenims pateikiami B ir C stulpeliai. Dabar reikia parašyti VBA VLOOKUP kodą, kad langelyje F4 nurodytas darbuotojo vardas, darbuotojo atlyginimas būtų grąžintas langelyje G4.

Parašykime VBA VLOOKUP kodą.

  1. Apibrėžkite diapazoną, kuriame yra vertės, ty B ir C stulpeliai.

Nustatyti diapazoną = diapazonas („B: C“)

  1. Apibrėžkite darbuotojo vardą ir įveskite vardą iš langelio F4.

Nustatyti pavadinimą = diapazonas („F4“)

  1. Apibrėžkite atlyginimą kaip langelį G4.

Nustatyti atlyginimą = Diapazonas („G4“)

  1. Dabar, naudodami VBA „WorksheetFunction“, iškvieskite „VLOOKUP“ funkciją ir įveskite ją į atlyginimą. Tai grąžins langelio G4 reikšmę (funkcijos „Vlookup“ išvestis). Galima naudoti šią sintaksę:

alga.Vertė = Application.WorksheetFunction.VLookup (vardas, sritis, 2, klaidinga)

  1. Dabar paleiskite modulį. G4 langelyje bus nurodytas darbuotojo atlyginimas, paleidus VBA VLOOKUP kodą.

Tarkime, kad darbalapyje pakeisite langelio F4 reikšmę į „David“ ir vėl paleisite kodą, jis grąžins Davidui atlyginimą.

VLookup kodas „Excel“ VBA 3 pavyzdyje

Tarkime, kad turite savo įmonės darbuotojo duomenis, turėdami asmens tapatybę, vardą, pavardę, skyrių ir atlyginimą. Naudodami „Vlookup“ VBA, norite gauti išsamią informaciją apie darbuotojo atlyginimą naudodamiesi jo vardu ir skyriumi.

Kadangi „Excel“ funkcija „vlookup“ ieško_valučių ieško tik viename stulpelyje, kuris yra pirmasis lentelės_dabarys, todėl pirmiausia turite sukurti stulpelį, kuriame būtų kiekvieno darbuotojo „Vardas“ ir „Skyrius“.

VBA darbalapio B stulpelyje įterpkime reikšmes „Pavadinimas“ ir „Skyrius“.

Norėdami tai padaryti, eikite į skirtuką Kūrėjas ir spustelėkite Visual Basic. Tada eikite įterpti ir spustelėkite Modulis, kad pradėtumėte naują modulį.

Parašykime kodą taip, kad B stulpelyje būtų D stulpelio (vardas) ir E stulpelio vertės.

Sintaksė pateikiama taip:

Pirmiausia naudokite „for“ kilpą nuo i = 4, nes šiuo atveju reikšmės prasideda nuo 4-osios eilutės. Kilpa tęsis iki paskutinės C stulpelio eilutės pabaigos. Taigi kintamasis i gali būti naudojamas kaip eilutės numeris „for“ kilpoje.

Tada įveskite reikšmę, kurią reikia priskirti langeliui (eilutės numeris, stulpelis B), kurį galima pateikti kaip langelius (i, „B“). Reikšmė kaip langelį (eilutės numeris, D stulpelis) ir „_“ & langelis (eilutės numeris, E stulpelis) ).

Tarkime, kad norite priskirti langelį B5 = D5 & "_" & E5, galite paprasčiausiai naudoti kodą kaip:

Ląstelės (5, „B“). Reikšmė = Ląstelės (5, „D“). Vertė & „_“ ir ląstelės (5, „E“). Vertė

Dabar leiskite ieškoti masyvo B5: E24 paieškos vertės, pirmiausia turite įvesti paieškos vertę. Paimkime vertę (vardas ir skyrius) iš vartotojo. Padaryti tai,

  1. apibrėžti tris kintamuosius, pavadinimą, skyrių ir look_val kaip eilutę.
  2. Paimkite iš vartotojo vardo įvestį. Naudokite kodą:

vardas = InputBox („Įveskite darbuotojo vardą“)

Kai įvesite kodą, įvesties laukelio „Enter the ..“ turinys bus rodomas raginimo laukelyje. Eilutė, įvesta eilutėje, bus priskirta vardo kintamajam.

  1. Paimkite skyrių iš vartotojo. Tai galima padaryti panašiai kaip aukščiau.

skyrius = InputBox („Įveskite darbuotojo skyrių“)

  1. Priskirkite pavadinimą ir skyrių su „_“ kaip kintamojo lookup_val skyriklį naudodami šią sintaksę:

lookup_val = vardas ir „_“ & skyrius

  1. Parašykite „vlookup“ sintaksę, kad ieškotumėte „lookup_val“ diapazone B5: E24 grąžinkite jį į kintamą atlyginimą.

Inicijuokite kintamą atlyginimą:

Blankus atlyginimas Ilgas

Norėdami rasti „lookup_val“, naudokite „Vlookup“ funkciją. Table_array gali būti pateiktas kaip diapazonas („B: F“), o atlyginimas yra 5-ame stulpelyje. Taigi galima naudoti šią sintaksę:

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

  1. Jei norite atsispausdinti atlyginimą pranešimų laukelyje, naudokite sintaksę:

MsgBox (Darbuotojo atlyginimas yra “ir atlyginimas)

Dabar paleiskite kodą. Darbalapyje pasirodys raginimo langelis, kuriame galėsite įvesti vardą. Įvedę vardą („Say Sashi“) ir spustelėkite Gerai.

Tai atvers kitą langelį, kuriame galėsite patekti į skyrių. Įėjęs į skyrių pasakykite IT.

Tai atspausdins darbuotojo atlyginimą.

Jei „Vlookup“ gali rasti bet kurį darbuotoją su vardu ir skyriumi, tai suteiks klaidą. Tarkime, kad jūs suteiksite pavadinimą „Višnu“ ir skyrių „IT“, tai grąžins vykdymo laiko klaidą „1004“.

Norėdami išspręsti šią problemą, kode galite nurodyti, kad šio tipo klaidoje vietoj to atspausdinkite „Value not found“. Padaryti tai,

  1. Prieš naudodami „vlookup“ sintaksę, naudokite šį kodą:

Apie klaidą „GoTo“ pranešimas

Patikrinti:

Galutinis (patikrinimo :) kodas bus stebimas ir, jei jis gaus kokių nors klaidų, jis eis į teiginį „žinutė“

  1. Kodo pabaigoje (Before End Sub) nurodykite, kad jei klaidos numeris yra 1004, tada atspausdinkite pranešimų laukelyje „Darbuotojų duomenų nėra“. Tai galima padaryti naudojant sintaksę:

Žinutė:

Jei klaidos numeris = 1004, tada

„MsgBox“ („Nėra darbuotojų duomenų“)

Pabaiga jei

1 modulis:

3 paketas ()

Jei i = 4 į ląsteles (eilutės. Skaičius, „C“). Pabaiga (xlUp). Eilutė

Ląstelės (i, „B“). Reikšmė = Ląstelės (i, „D“). Reikšmė & „_“ ir ląstelės (i, „E“). Vertė

Kitas „iDim“ vardas kaip eilutė

Blankus skyrius kaip styginis

Blankus lookup_val kaip eilutė

Blankus atlyginimas As Longname = InputBox („Įveskite darbuotojo vardą“)

skyrius = InputBox („Įveskite darbuotojo skyrių“)

lookup_val = vardas ir „_“ & skyrius Dėl klaidos „GoTo“ pranešimas

patikrinti:

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

„MsgBox“ („Darbuotojo atlyginimas yra“ ir atlyginimas) Pranešimas:

Jei klaidos numeris = 1004, tada

„MsgBox“ („Nėra darbuotojų duomenų“)

Baigti „IfEnd“ antrinį

Dalykai, kuriuos reikia atsiminti apie „VLookup“ programoje „Excel VBA“

  • „Vlookup“ funkciją galima iškviesti „Excel VBA“ naudojant „WorksheetFunction“.
  • „Vlookup“ funkcijos sintaksė „Excel VBA“ išlieka ta pati.
  • Kai VBA „vlookup“ kodas neranda „lookup_value“, jis suteiks 1004 klaidą.
  • Funkcijos „vlookup“ klaidą galima valdyti naudojant „goto“ sakinį, jei ji pateikia klaidą.

$config[zx-auto] not found$config[zx-overlay] not found