VLOOKUP Exceli VBA-s | Kuidas kirjutada VLOOKUP-kood VBA-sse?

Vlookup on Exceli töölehe funktsioon, kuid seda saab kasutada ka VBA-s, Vlookupi funktsionaalsus on sarnane nii VBA kui ka töölehe funktsionaalsusega, kuna see on töölehe funktsioon, meetod Vlookupi kasutamiseks VBA-s toimub rakenduse kaudu. meetod ja argumendid jäävad samaks.

Funktsioon VLOOKUP Exceli VBA-s

Exceli funktsiooni VLOOKUP kasutatakse massiivi väärtuse otsimiseks ja selle vastava väärtuse tagastamiseks teisest veerust. Otsitava väärtus peaks olema esimeses veerus. Samuti on vaja mainida, kas otsida täpset vastet või ligikaudset vastet. Töölehe funktsiooni VLOOKUP saab kasutada VBA kodeerimisel. Funktsioon pole VBA-s sisse ehitatud ja seega saab seda helistada ainult töölehe abil.

Exceli funktsioonil VLOOKUP on järgmine süntaks:

Milles otsingu väärtus on otsitav väärtus, table_arrray on tabel, col_index_num on tagastatava väärtuse veeru number, range_lookup tähistab, kas vaste on täpne või ligikaudne. vahemiku_otsingu väärtus võib olla TRUE / FALSE või 0/1.

VBA-koodis saab funktsiooni VLOOKUP kasutada järgmiselt:

Application.WorksheetFunction.vlookup (otsingu_väärtus, tabeli_värv, col_index_num, vahemiku_otsing)

Kuidas kasutada VLookupi Exceli VBA-s?

Allpool on mõned näited VLookupi koodist Exceli VBA-s.

Selle VLookupi saate alla laadida Exceli VBA mallist siit - VLookup Exceli VBA mallist

VLookupi kood Excelis VBA näide nr 1

Vaatame, kuidas saame Exceli VBA-s töölehe funktsiooni VLOOKUP kutsuda.

Oletame, et teil on andmed õpilaste isikutunnistuse, nime ja nende poolt saadud keskmiste hindete kohta.

Nüüd soovite otsida õpilase ID-ga 11004 saadud hindeid.

Väärtuse otsimiseks toimige järgmiselt.

  • Minge vahekaardile Arendaja ja klõpsake nuppu Visual Basic.

  • VBA akna all minge jaotisse Lisa ja klõpsake nuppu Moodul.

  • Nüüd kirjutage VBA VLOOKUP kood. Kasutada saab järgmist VBA VLOOKUP koodi.

Subvlookup1 ()

Hämar õpilase_id nii kaua

Hämarad märgid on pikkad

student_id = 11004

Määra vahemik = Vahemik ("B4: D8")

märgid = Application.WorksheetFunction.VLookup (õpilase ID, myrange, 3, False)

Lõpeta alam

Esiteks määrake õpilase ID, mis on otsitava väärtus. Seetõttu määratleme

student_id = 11004

Järgmisena määratleme vahemiku, milles väärtus ja tagastatav väärtus eksisteerivad. Kuna meie andmed on lahtrites B4: D8, määratleme vahemiku-vahemiku järgmiselt:

Määra vahemik = Vahemik ("B4: D8")

Lõpuks sisestame funktsiooni VLOOKUP, kasutades muutuja funktsiooni Tööleht, tähistatakse järgmiselt:

märgid = Application.WorksheetFunction.VLookup (õpilase ID, myrange, 3, False)

Sõnumikasti märkide printimiseks kasutage järgmist käsku:

MsgBox “Õpilane, kellel on ID:” & student_id & ”saadud” & marki & ”märki”

See naaseb:

ID-ga 11004 õpilane sai 85 marka.

Nüüd klõpsake nuppu Käivita.

Märkate, et Exceli lehele ilmub teatekast.

VLookupi kood Exceli VBA näites nr 2

Oletame, et teil on töötajate nimede ja palga andmed. Nendele andmetele antakse veerud B ja C. Nüüd peate kirjutama VBA VLOOKUP-koodi nii, et antud lahtris töötaja nimi F4 tagastatakse töötaja palk lahtrisse G4.

Kirjutagem VBA VLOOKUP kood.

  1. Määratlege vahemik, milles väärtused esinevad, st veerud B ja C.

Määra vahemik = Vahemik ("B: C")

  1. Määratlege töötaja nimi ja sisestage nimi lahtrist F4.

Set name = Range („F4”)

  1. Määratlege palk lahtrina G4.

Määra palk = vahemik (“G4”)

  1. Nüüd helistage funktsioon VLOOKUP, kasutades VBA-s WorksheetFunction ja sisestage see palka. Väärtus. See tagastab lahtris G4 väärtuse (funktsiooni Vlookup väljund). Kasutada saab järgmist süntaksit:

palk.Väärtus = Application.WorksheetFunction.VLookup (nimi, vahemik, 2, vale)

  1. Nüüd käivitage moodul. Lahter G4 sisaldab töötaja palka pärast VBA VLOOKUP-koodi käivitamist.

Oletame, et muudate töölehe lahtris F4 väärtuseks „David“ ja käivitate koodi uuesti, see tagastab Taaveti palga.

VLookupi kood Excelis VBA näide # 3

Oletame, et teil on oma ettevõtte töötaja andmed, kellel on tema ID, nimed, osakond ja palk. Kasutades VBA-s Vlookupi, soovite saada töötaja palgateavet tema nime ja osakonda kasutades.

Kuna Exceli funktsioon vlookup otsib otsingu_väärtust ainult ühes veerus, mis on tabeli_vajutus esimene veerg, peate kõigepealt koostama veeru, mis sisaldab iga töötaja nime ja osakonda.

Lisage VBA-s töölehe B veergu väärtused "Nimi" ja "Osakond".

Selleks minge vahekaardile Arendaja ja klõpsake nuppu Visual Basic. Seejärel minge uue mooduli käivitamiseks sisestamiseks ja klõpsake nuppu Moodul.

Kirjutagem nüüd kood nii, et veerg B sisaldab veeru D (nimi) ja veeru E väärtusi.

Süntaks on esitatud järgmiselt:

Esiteks kasutage silmust 'for' alates i = 4, kuna väärtused algavad sel juhul neljandast reast. Tsükkel jätkub veeru C viimase rea lõpuni. Muutujat i saab kasutada rea ​​numbrina silmus „for”.

Seejärel sisestage lahtrile määratav väärtus (rea number_, veerg B), mida saab anda lahtritena (i, „B”). Väärtus lahtrina (rea_number, veerg D) & „_” & lahter (rea_number, veerg E ).

Oletame, et soovite määrata lahtrile B5 = D5 & “_” & E5, saate koodi kasutada lihtsalt järgmiselt:

Lahtrid (5, "B"). Väärtus = Lahtrid (5, "D"). Väärtus & "_" & Lahtrid (5, "E"). Väärtus

Nüüd laske otsida massiivi B5: E24 otsinguväärtust, peate kõigepealt sisestama otsingu väärtuse. Võtame kasutajalt väärtuse (nimi ja osakond). Selleks

  1. defineerige stringina kolm muutujat, nimi, osakond ja otsingu_val.
  2. Võtke kasutajalt sisestatud nimi. Kasutage koodi:

nimi = InputBox („Sisestage töötaja nimi”)

Sisestuskasti „Sisestage ..“ sisu kuvatakse koodi käivitamisel viipakastis. Viipasse sisestatud string määratakse nimemuutujale.

  1. Võtke osakond kasutajalt. Seda saab teha sarnaselt ülaltoodule.

osakond = InputBox („Sisestage töötaja osakond“)

  1. Määrake muutuja lookup_val eraldajana nimi ja osakond tähisega „_” järgmise süntaksiga:

lookup_val = nimi & “_” & osakond

  1. Kirjutage vlookupi süntaks, et otsida vahemikku B5 otsingu_val: E24 tagastab selle muutuva palgana.

Muutke palga muutmine:

Hämar palk sama pikk

Otsingu_val leidmiseks kasutage funktsiooni Vlookup. Tabeli_raja saab anda vahemikuna (“B: F”) ja palk on 5. veerus. Seega saab kasutada järgmist süntaksit:

palk = Application.WorksheetFunction.VLookup (otsingu_val, vahemik ("B: F"), 5, vale)

  1. Palga teatekasti printimiseks kasutage süntaksit:

MsgBox (Töötaja palk on & palk)

Nüüd käivitage kood. Töölehele ilmub viipekast, kuhu saate nime sisestada. Pärast nime sisestamist (Say Sashi) ja klõpsake nuppu OK.

See avab teise kasti, kus saate osakonda siseneda. Pärast osakonda sisenemist öelge IT.

See trükib töötaja palga.

Kui Vlookup suudab leida mõne töötaja, kellel on nimi ja osakond, annab see vea. Oletame, et annate nime “Višnu” ja osakond “IT”, see tagastab käitusaja vea 1004.

Selle probleemi lahendamiseks võite koodis täpsustada, et seda tüüpi tõrke korral printige selle asemel väärtus “Väärtust ei leitud”. Selleks

  1. Enne vlookupi süntaksit kasutage järgmist koodi-

On GoTo Messagei tõrge

Kontrollima:

Jälgitavat koodi (kontrolli :) jälgitakse ja kui see saab viga, läheb see lause "sõnum" juurde

  1. Koodi lõpus (Before End Sub) täpsustage, et kui tõrke number on 1004, printige sõnumikasti „Töötajate andmeid pole”. Seda saab teha süntaksiga:

Sõnum:

Kui Vea number = 1004 Siis

MsgBox („Töötajate andmeid pole”)

Lõpeta, kui

1. moodul:

Alamvaade3 ()

Kui i = 4 rakkudele (read.Count, "C"). Lõpp (xlUp) .Rida

Lahtrid (i, "B"). Väärtus = Lahtrid (i, "D"). Väärtus & "_" & Lahtrid (i, "E"). Väärtus

Järgmine iDimi nimi stringina

Hämar osakond stringina

Hämar otsingu_val stringina

Hämar palk As Longname = InputBox („Sisestage töötaja nimi”)

osakond = InputBox („Sisestage töötaja osakond“)

lookup_val = nimi & “_” & osakond On GoTo sõnumi viga

Kontrollima:

palk = Application.WorksheetFunction.VLookup (otsingu_val, vahemik ("B: F"), 5, vale)

MsgBox („Töötaja palk on“ ja palk) Sõnum:

Kui Vea number = 1004 Siis

MsgBox („Töötajate andmeid pole”)

Lõpeta IfEnd alam

Mida tuleks Exceli VBA VLookupi kohta meeles pidada

  • Funktsiooni Vlookup saab Exceli VBA-s kutsuda, kasutades funktsiooni WorksheetFunction.
  • Funktsiooni vlookup süntaks jääb Exceli VBA-s samaks.
  • Kui VBA vlookup kood ei leia otsinguväärtust, annab see vea 1004.
  • Funktsiooni vlookup viga saab hallata goto-lause abil, kui see annab vea.