Cum se utilizează VLOOKUP în VBA (4 moduri)

  • Imparte Asta
Hugh West

În ceea ce privește căutarea sau vizualizarea unor valori sau elemente specifice, MS Excel oferă diverse funcții. VLOOKUP este una dintre ele. Ea ne ajută să căutăm datele dorite din orice set de date. Ne permite să menționăm dacă dorim să căutăm o potrivire exactă sau o potrivire aproximativă. Pe lângă utilizarea acestei funcții în formula Excel, o putem folosi și în codul VBA. În acest articol, vom vedea cum putem folosi această funcție Funcția VLOOKUP în VBA.

Descărcați caietul de practică

VLOOKUP în VBA.xlsm

4 moduri de a utiliza VLOOKUP în VBA

1. Căutarea manuală a datelor utilizând VLOOKUP în VBA

Să avem un set de date cu informații despre angajați cu ID-ul, numele, departamentul, data angajării și salariul acestora. Acum sarcina noastră este de a afla manual informațiile despre angajați folosind ID-ul lor. În această secțiune, vom afla doar salariul angajatului folosind ID-ul lor.

Pasul 1: Selectați Visual Basic la adresa Dezvoltator tab (comandă rapidă Alt + F11 )

Pasul 2: Apoi va apărea o fereastră. Selectați Modul opțiune în cadrul Introduceți buton

Pasul 3: Acum scrieți următorul cod în consola VBA și apăsați butonul Rulați buton (comandă rapidă F5 )

Cod:

 Sub vlookup_function_1() Dim Employee_id As Long Dim salary As Long Employee_id = 1144 Set myerange = Range("B4:F11") salary = Application.WorksheetFunction.VLookup(Employee_id, myerange, 5, False) MsgBox "Employee ID:" & Employee_id & " Salary " & "$" & salary End Sub 

Pasul 4: Acum va apărea un mesaj pop și va afișa informațiile

Citește mai mult: VLOOKUP pentru a căuta text în Excel (4 moduri simple)

2. Căutați date cu intrare folosind VLOOKUP în VBA

Acum să vedem cum putem căuta sau extrage date din tabele sau intervale cu ajutorul intrărilor. Ca în imagine, vom afla numele id-ului introdus din tabelul cu informații despre angajat.

Pasul 1: Mai întâi deschideți consola VBA urmând același pas 1 la pas 2

Pasul 2: Acum introduceți următorul cod în fereastra VBA

Cod:

 Sub vlookup_function_2() Set myerange = Range("B4:F11") Set ID = Range("D13") Set Name = Range("D14") Name.Value = Application.WorksheetFunction.VLookup(ID, myerange, 2, False) End Sub 

Pasul 3: Acum introduceți orice ID în celulă D13 și executați codul

Pasul 4: The Nume care este salvat în raport cu ID-ul va fi afișat

Citește mai mult: 10 Cele mai bune practici cu VLOOKUP în Excel

Lecturi similare

  • VLOOKUP nu funcționează (8 Motive & Soluții)
  • Funcția INDEX MATCH vs VLOOKUP (9 exemple)
  • Utilizați VLOOKUP cu criterii multiple în Excel (6 metode + alternative)
  • Excel VLOOKUP pentru a găsi ultima valoare din coloană (cu alternative)
  • Excel VLOOKUP pentru a returna mai multe valori pe verticală

3. Găsiți informații cu caseta de intrare folosind VLOOKUP în VBA

Să vedem cum putem căuta date utilizând caseta de introducere a datelor din VBA. Pentru căutare, trebuie să folosim funcția VLOOKUP din codul VBA. Din nou, setul de date va fi același, dar abordarea căutării va fi diferită. Aici sarcina noastră este de a afla salariul angajatului prin introducerea ID-ului și a departamentului.

Pasul 1: Mai întâi deschideți fereastra VBA urmând același Pas 1 la Pasul 2

Pasul 2: Acum introduceți următorul cod în consola VBA și Rulați it

Cod:

 Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Next i End Sub 

Pasul 3: Acest lucru va imprima un șir combinat cu ID-ul și departamentul în prima coloană.

Pasul 4: Acum, mergeți din nou la consola VBA și introduceți codul complet și rulați din nou

Cod:

 Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Next i Dim ID As Long Dim department As String Dim lookup_val As String Dim salary As Long ID = InputBox("Introduceți ID-ul angajatului") department = InputBox("Introduceți departamentul angajatului") lookup_val = ID & "_" & department OnError GoTo Message check: salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A:F"), 6, False) MsgBox ("Salariul angajatului este $" & salary) Message: If Err.Number = 1004 Then MsgBox ("Datele angajatului nu sunt prezente") End If End Sub 

Cod Explicație

  • În primul rând, Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value folosind acest cod, stocăm valorile concatenate ID și Departament în coloana A.
  • lookup_val = ID & "_" & department aceasta definește că valoarea de căutare va fi ID și departamentul.
  • salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A: F"), 6, False) aici stocăm salariul angajatului potrivit într-o variabilă numită salariu
  • Dacă numărul de erori = 1004 atunci Aceasta este o verificare a condițiilor. Verificăm dacă numărul de eroare este 1004 sau nu. În Excel VBA, codul 1004 înseamnă că valoarea căutată nu este găsită, ștearsă sau eliminată.

Pasul 5: Acum va apărea o fereastră pop-up ca în imaginea de mai jos. Introducere ID și Departamentul secvențial

Pasul 6: După ce ați apăsat butonul Ok se va afișa rezultatul final

Pasul 7: Dacă introduceți o cifră greșită ID sau Departamentul, se va afișa mesajul de mai jos

Citește mai mult: Cum să VLOOKUP cu condiții multiple în Excel (2 metode)

4. Găsiți informații cu ajutorul unui buton folosind VLOOKUP în VBA

Acum vom vedea cum putem afla informații cu ajutorul unui buton în loc să executăm codul manual. Din nou, setul de date va fi același ca mai sus.

Pasul 1: Mai întâi selectați Introduceți în cadrul opțiunii Dezvoltator fila

Pasul 2: Apoi selectați Buton opțiunea din Introduceți

Pasul 3: Așezați butonul conform cerințelor dumneavoastră și dați-i numele butonului.

Pasul 4: Acum faceți clic dreapta pe buton și selectați Atribuire macro

Pasul 5: Acum creați o nouă macro și numiți-o vlookup_function_4

Pasul 6: Scrieți codul de mai jos în consola VBA și Rulați codul

Cod:

 Sub vlookup_function_4() Dim rng As Range, FinalResult As Variant, Table_Range As Range, LookupValue As Range Set rng = Sheets("Sheet4").Range("D15") Set Table_Range = Sheets("Sheet4").Range("B4:F11") Set LookupValue = Sheets("Sheet4").Range("D14") FinalResult = Application.WorksheetFunction.VLookup(LookupValue, Table_Range, 5, False) rng = FinalResult End Sub 

Pasul 6: Acum introduceți orice ID și apăsați butonul

Citește mai mult: Utilizarea VBA VLOOKUP pentru a găsi valori dintr-o altă foaie de lucru în Excel

Lucruri de reținut

Erori comune Când se arată
1004 eroare Atunci când codul VBA vlookup nu poate găsi valoarea de căutare, va da o eroare 1004.
Funcția VLOOKUP nu se găsește în VBA Funcția Vlookup poate fi apelată în Excel VBA utilizând WorksheetFunction.
Gestionarea erorilor Eroarea din funcția vlookup poate fi controlată cu ajutorul unui parametru mergeți la în cazul în care aceasta returnează o eroare.

Concluzie

Acestea sunt câteva modalități de utilizare a VLOOKUP în VBA în Excel. Am prezentat toate metodele cu exemplele lor respective, dar pot exista multe alte iterații. Am discutat, de asemenea, elementele fundamentale ale funcțiilor utilizate. Dacă aveți o altă metodă de a realiza acest lucru, atunci nu ezitați să o împărtășiți cu noi.

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.