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, todėl „Vlookup“ naudojimas VBA yra 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 funkciją VLOOKUP galima naudoti koduojant VBA. Funkcija nėra įmontuota VBA, todėl ji gali skambinti tik naudodama darbalapį.

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

Kuriame „lookup_value“ yra ieškoma vertė, „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“ kodas „Excel“ VBA 1 pavyzdyje

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

Tarkime, kad jis pateikia duomenis apie studentų tapatybę, vardą ir jų gautus vidutinius pažymius.

Dabar norite ieškoti pažymių, kurias gavo studentas, turintis ID 11004.

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

  • Eikite į skirtuką „Kūrėjas“ ir spustelėkite „Visual Basic“.
  • Po VBA lange eikite į Įterpti ir spustelėkite Modulis.
  • Dabar parašykite VBA VLOOKUP kodą. Galima naudoti šį VBA VLOOKUP kodą.

Sub vlookup1 ()
Dim student_id As Long
Dim pažymi As Long
student_id = 11004
Set myrange = Range („B4: D8“)
ženklai = Application.WorksheetFunction.VLookup (studento_id, myrange, 3, False)
Pabaiga 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, diapazono diapazoną apibrėžiame kaip:

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“ & ženklas 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 duomenų apie darbuotojų pavardes ir jų atlyginimą. Šiems duomenims pateikiami B ir C stulpeliai. Dabar turite 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 stulpelius B ir C.

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 reikšmę („Vlookup“ funkcijos išvestis) langelyje G4. 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 jūs pakeisite langelio F4 reikšmę į „David“ darbalapyje ir iš naujo paleisite kodą, ir tai grąžins Deivido 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_vertės ieško tik viename stulpelyje, kuris yra pirmasis lentelės_dabalys, 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į.

Dabar 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 kintamąjį I galima naudoti kaip eilutės numerį „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ę, jei norite ieškoti „lookup_val“ diapazone B5: E24 grąžina 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 suteikiate 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 klaidą, jis eis į teiginį „pranešimas“

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

Pranešimas:

Jei klaidos numeris = 1004, tada

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

Pabaiga jei

1 modulis:

Sub vlookup3 ()
Jei i = 4 į ląsteles (eilutės. Skaičius, „C“). Pabaiga (xlUp). Eilutės langeliai
(i, „B“). Reikšmė = Langeliai (i, „D“). Vertė ir „_ “& Cells (i,„ E “). Reikšmė
Kitas„ iDim “pavadinimas Kaip„ String
Dim “skyrius Kaip„ String
Dim “lookup_val Kaip String
Dim atlyginimas As Longname = InputBox („ Įveskite darbuotojo vardą “)
skyrius = InputBox („ Įveskite darbuotojas “)
lookup_val = vardas ir„ _ “& skyrius Dėl klaidos„ GoTo “pranešimų
tikrinimas:
atlyginimas = Application.WorksheetFunction.VLookup (lookup_val, Range („ B: F “), 5, False)
MsgBox („ Darbuotojo atlyginimas yra “& Atlyginimas) Pranešimas:
jei klaidos numeris = 1004, tada„
MsgBox “(„ Darbuotojų duomenų nėra “)
Baigti „IfEnd“ antrinį

Įsimintini dalykai apie „VLookup“ programoje „Excel VBA“

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

Įdomios straipsniai...