VLOOKUP u programu Excel VBA - Kako napisati VLOOKUP kod u VBA?

Vlookup je funkcija radnog lista u Excelu, ali može se koristiti i u VBA-u, funkcionalnost Vlookupa slična je funkcionalnosti VBA-a i na radnom listu, budući da je funkcija radnog lista metoda korištenja Vlookupa u VBA-u kroz Application.WorksheetFunction metoda i argumenti ostaju isti.

VLOOKUP funkcija u programu Excel VBA

Funkcija VLOOKUP u Excelu koristi se za pretraživanje vrijednosti u polju i vraćanje odgovarajuće vrijednosti iz drugog stupca. Vrijednost za pretraživanje trebala bi biti prisutna u prvom stupcu. Također je potrebno spomenuti treba li tražiti točno ili približno podudaranje. Funkcija radnog lista VLOOKUP može se koristiti u VBA kodiranju. Funkcija nije ugrađena u VBA i stoga može pozivati ​​samo pomoću radnog lista.

Funkcija VLOOKUP u Excelu ima sljedeću sintaksu:

U kojoj je lookup_value vrijednost koju treba tražiti, table_arrray je tablica, col_index_num je broj stupca povratne vrijednosti, range_lookup označava je li podudaranje točno ili približno. range_lookup može biti TRUE / FALSE ili 0/1.

U VBA kodu funkcija VLOOKUP može se koristiti kao:

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

Kako koristiti VLookup u Excelu VBA?

Ispod su neki primjeri VLookup koda u programu Excel VBA.

VLookup kod u Excelu VBA Primjer # 1

Pogledajmo kako možemo nazvati funkciju radnog lista VLOOKUP u programu Excel VBA.

Pretpostavimo da imate podatke o osobnoj iskaznici, imenu i prosječnim ocjenama koje su oni dobili.

Sada želite potražiti ocjene koje je student stekao s ID-om 11004.

Da biste pronašli vrijednost, slijedite sljedeće korake:

  • Idite na karticu Developer i kliknite Visual Basic.
  • Ispod VBA prozora idite na Umetni i kliknite Modul.
  • Sada napišite VBA VLOOKUP kôd. Sljedeći VBA VLOOKUP kôd se može koristiti.

Pod vlookup1 ()
Dim student_id Kao čeznuti
DIM maraka Kao čeznuti
student_id = 11004
Postavi myrange = Range ( „B4: D8”)
oznake = Application.WorksheetFunction.VLookup (student_id, myrange, 3, False)
End Sub

Prvo definirajte studentski ID koji je vrijednost za traženje. Stoga definiramo,

student_id = 11004

Dalje, definiramo raspon u kojem vrijednost i povratna vrijednost postoje. Budući da su naši podaci prisutni u stanicama B4: D8, definiramo opseg - raspon kao:

Postavi moj opseg = Raspon (“B4: D8”)

Na kraju, unosimo funkciju VLOOKUP pomoću funkcije Radni list u varijablu, označava kao:

oznake = Application.WorksheetFunction.VLookup (student_id, myrange, 3, False)

Da bismo ispisali oznake u okviru s porukom, upotrijebimo sljedeću naredbu:

MsgBox "Student s ID-om:" & student_id & "dobiven" & ocjene & "ocjene"

Vratit će se:

Student sa ID: 11004 dobio je 85 maraka.

Sada kliknite gumb za pokretanje.

Primijetit ćete da će se na Excel listu pojaviti okvir s porukom.

VLookup kod u Excelu VBA Primjer # 2

Pretpostavimo da imate podatke o imenima zaposlenika i njihovoj plaći. Ovi podaci dobivaju stupce B i C. Sada morate napisati VBA VLOOKUP kôd takav da će se s obzirom na ime zaposlenika u ćeliji, F4, plaća zaposlenika vratiti u ćeliju G4.

Napišimo VBA VLOOKUP kôd.

  1. Definirajte raspon u kojem su vrijednosti prisutne, tj. Stupci B i C.

Postavi moj opseg = Raspon ("B: C")

  1. Definirajte ime zaposlenika i unesite ga iz ćelije F4.

Naziv skupa = Raspon (“F4”)

  1. Definirajte plaću kao ćeliju G4.

Postavi plaću = Raspon ("G4")

  1. Sada pozovite funkciju VLOOKUP koristeći WorksheetFunction u VBA i unesite je u pay.Value. To će vratiti vrijednost (izlaz funkcije Vlookup) u ćeliji G4. Može se koristiti sljedeća sintaksa:

pay.Value = Application.WorksheetFunction.VLookup (ime, moj raspon, 2, Netačno)

  1. Sada pokrenite modul. Ćelija G4 sadržavat će plaću zaposlenika nakon pokretanja VBA VLOOKUP koda.

Pretpostavimo da na radnom listu promijenite vrijednost ćelije F4 u "David" i ponovno pokrenete kôd, a vratit će Davidovu plaću.

VLookup kod u Excelu VBA Primjer # 3

Pretpostavimo da imate podatke zaposlenika u vašoj tvrtki, njihove osobne iskaznice, imena, odjele i plaću. Korištenjem Vlookupa u VBA-u želite dobiti podatke o plaći zaposlenika koristeći njegovo ime i odjel.

Budući da funkcija vlookup u excelu pretražuje vrijednost_traženja u samo jednom stupcu, što je prvi stupac niza table_, potrebno je da prvo napravite stupac koji sadrži "Ime" i "Odjel" svakog zaposlenika.

U VBA umetnimo vrijednosti "Ime" i "Odjel" u stupac B radnog lista.

Da biste to učinili, idite na karticu Developer i kliknite Visual Basic. Zatim idite na Umetni i kliknite Modul da biste pokrenuli novi modul.

Napišimo sada kod, takav da stupac B sadrži vrijednosti stupca D (ime) i stupca E.

Sintaksa je dana kao:

Prvo, koristiti „za” petlji od i = 4, jer su vrijednosti počevši od 4 -og red u tom slučaju. Petlja će se nastaviti do kraja posljednjeg retka stupca C. Dakle, varijabla I može se koristiti kao broj retka unutar petlje 'for'.

Zatim unesite vrijednost koju ćete dodijeliti ćeliji (broj_reda, stupac B), koja se može dati kao ćelije (i, "B"). Vrijednost, kao ćelija (broj_reda, stupac D) & "_" & ćelija (broj_reda, stupac E ).

Pretpostavimo da želite dodijeliti ćeliji B5 = D5 & “_” & E5, možete jednostavno koristiti kôd kao:

Ćelije (5, "B"). Vrijednost = Ćelije (5, "D"). Vrijednost & "_" & Ćelije (5, "E"). Vrijednost

Sada, potražimo vrijednost pretraživanja u polju B5: E24. Prvo morate unijeti vrijednost pretraživanja. Uzmimo vrijednost (Ime i odjel) od korisnika. Uraditi ovo,

  1. definirajte tri varijable, ime, odjel i lookup_val kao niz.
  2. Unesite ime od korisnika. Koristite kod:

name = InputBox ("Unesite ime zaposlenika")

Sadržaj u okviru za unos "Enter the …" prikazat će se u okviru za upit kada pokrenete kôd. Niz upisan u prompt bit će dodijeljen varijabli imena.

  1. Uzmi odjel od korisnika. To se može učiniti slično kao gore.

odjel = InputBox ("Unesite odjel zaposlenika")

  1. Dodijelite ime i odjel s “_” kao separator varijabli lookup_val koristeći sljedeću sintaksu:

lookup_val = ime & “_” & odjel

  1. Napišite vlookup sintaksu za traženje lookup_val u rasponu B5: E24 ga vraća u varijabilnoj plaći.

Inicijalizirajte varijabilnu plaću:

Slaba plaća dokle god

Upotrijebite funkciju Vlookup za pronalaženje lookup_val. Table_array može dati izboru ( „B: F”) i plaća prisutan na 5 -om stupcu. Tako se može koristiti sljedeća sintaksa:

plaća = Application.WorksheetFunction.VLookup (lookup_val, Raspon (“B: F”), 5, Netačno)

  1. Da biste ispisali plaću u okvir za poruke, upotrijebite sintaksu:

MsgBox (Plaća zaposlenika je "& plaća)

Sada pokrenite kod. Na radnom listu pojavit će se okvir za upit u koji možete unijeti ime. Nakon što unesete ime (Recite Sashi) i kliknite U redu.

Otvorit će se još jedan okvir u kojem možete ući u odjel. Nakon što uđete na odjel, recite IT.

Ispisat će plaću zaposlenika.

Ako Vlookup pronađe bilo kojeg zaposlenika s imenom i odjelom, ispisat će pogrešku. Pretpostavimo da date ime "Vishnu" i odjel "IT", vratit će se pogreška u vremenu izvođenja '1004'.

Da biste riješili ovaj problem, u kodu možete navesti da na ovoj vrsti pogreške umjesto toga ispišite "Vrijednost nije pronađena". Uraditi ovo,

  1. Prije upotrebe vlookup sintakse, upotrijebite sljedeći kod-

O pogrešci GoTo Message

Ček:

Pratit će se prateći kôd (Check Check :), a ako dobije pogrešku, preći će na izjavu "poruka"

  1. Na kraju koda (Before End Sub), navedite da ako je broj pogreške 1004, ispišite u okvir za poruku "Podaci zaposlenika nisu prisutni." To se može učiniti pomoću sintakse:

Poruka:

Ako je Err.Broj = 1004 Tada

MsgBox („Podaci o zaposleniku nisu prisutni“)

Završi ako

Modul 1:

Sub vlookup3 ()
Za i = 4 do ćelija (retci.broj, “C”). Kraj (xlUp) .redne
ćelije (i, “B”). Vrijednost = ćelije (i, “D”). Vrijednost & “_ "& Cells (i," E "). Vrijednost
Sljedeće iDim ime Kao niz
Dim odjel Kao niz
Dim lookup_val Kao niz
Dim plaću Kao Longname = InputBox (" Unesite ime zaposlenika ")
odjel = InputBox (" Unesite odjel zaposlenik ")
lookup_val = name &" _ "& departmentOn Error GoTo
Provjera poruke :
pay = Application.WorksheetFunction.VLookup (lookup_val, Range (" B: F "), 5, False)
MsgBox (" Plaća zaposlenika je ”I plaća) Poruka:
Ako je Err.Number = 1004, onda
MsgBox („ Podaci o zaposleniku nisu prisutni “)
Kraj IfEnd Sub

Stvari koje treba zapamtiti o VLookup-u u programu Excel VBA

  • Funkcija Vlookup može se pozvati u programu Excel VBA pomoću WorksheetFunction.
  • Sintaksa funkcije vlookup ostaje ista u programu Excel VBA.
  • Kada VBA vlookup kôd ne može pronaći lookup_value, dat će pogrešku 1004.
  • Pogreškom u funkciji vlookup može se upravljati pomoću izraza goto ako vrati pogrešku.

Zanimljivi članci...