VLOOKUP gebruiken in VBA (4 manieren)

  • Deel Dit
Hugh West

Om bepaalde specifieke waarden of elementen te zoeken of te bekijken, biedt MS Excel verschillende functies. VLOOKUP Deze functie helpt ons bij het zoeken naar de gewenste gegevens uit een dataset en stelt ons in staat aan te geven of we willen zoeken naar een exacte of een benaderende overeenkomst. Naast het gebruik van deze functie in de Excel formule, kunnen we deze ook gebruiken in VBA code. In dit artikel zullen we zien hoe we deze functie kunnen gebruiken VLOOKUP-functie in VBA.

Download het oefenwerkboek

VLOOKUP in VBA.xlsm

4 manieren om VLOOKUP in VBA te gebruiken

1. Gegevens handmatig zoeken met VLOOKUP in VBA

We hebben een dataset met werknemersinformatie, hun ID, Naam, Afdeling, Datum indiensttreding en Salaris. Nu is het onze taak om de werknemersinformatie handmatig te achterhalen met behulp van hun ID. In dit gedeelte zullen we alleen het salaris van de werknemer achterhalen met behulp van zijn ID.

Stap 1: Selecteer Visual Basic onder Ontwikkelaar tab (Snelkoppeling Alt + F11 )

Stap 2: Dan komt er een venster. Selecteer Module optie onder Plaats knop

Stap 3: Schrijf nu de volgende code in de VBA-console en druk op de knop Ren knop (Snelkoppeling F5 )

Code:

 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 

Stap 4: Nu komt er een bericht en toont de informatie

Lees meer: VLOOKUP om tekst te zoeken in Excel (4 eenvoudige manieren)

2. Gegevens met invoer zoeken met behulp van VLOOKUP in VBA

Laten we nu eens kijken hoe we gegevens kunnen zoeken of extraheren uit tabellen of reeksen met invoer. Zoals in de afbeelding zullen we de naam van de ingevoerde id vinden in de tabel met werknemersinformatie.

Stap 1: Open eerst de VBA-console door dezelfde Stap 1 naar Stap 2 te volgen

Stap 2: Voer nu de volgende code in het VBA-venster in

Code:

 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 

Stap 3: Voer nu een willekeurige ID in de cel D13 en voer de code uit

Stap 4: De Naam die is opgeslagen tegen de ID wordt getoond

Lees meer: 10 beste praktijken met VLOOKUP in Excel

Vergelijkbare lezingen

  • VLOOKUP werkt niet (8 redenen & oplossingen)
  • INDEX MATCH vs VLOOKUP-functie (9 voorbeelden)
  • VLOOKUP gebruiken met meerdere criteria in Excel (6 methoden + alternatieven)
  • Excel VLOOKUP om laatste waarde in kolom te vinden (met alternatieven)
  • Excel VLOOKUP om meerdere waarden verticaal terug te geven

3. Informatie zoeken met invoervak met behulp van VLOOKUP in VBA

Laten we eens kijken hoe we gegevens kunnen zoeken met het invoerveld van VBA. Voor het zoeken moeten we de VLOOKUP Ook hier zal de dataset hetzelfde zijn, maar de manier van zoeken zal anders zijn. Hier is onze taak het salaris van de werknemer te achterhalen door het ID en de afdeling in te voeren.

Stap 1: Open eerst het VBA-venster door dezelfde Stap 1 naar Stap 2 te volgen

Stap 2: Voer nu de volgende code in de VBA-console in en Ren het

Code:

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

Stap 3: Dit drukt een gecombineerde string af met ID en Afdeling in de eerste kolom

Stap 4: Ga nu opnieuw naar de VBA-console en voer de volledige code in en voer opnieuw uit

Code:

 Sub vlookup_function_3() Voor i = 4 tot 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("Voer de ID van de werknemer in") department = InputBox("Voer de afdeling van de werknemer in") lookup_val = ID & "_" & department OnFout Ga naar bericht controle: salaris = Application.WorksheetFunction.VLookup(lookup_val, Range("A:F"), 6, False) MsgBox ("Het salaris van de werknemer is $" & salaris) Bericht: Als Err.Number = 1004 Dan MsgBox ("Werknemergegevens niet aanwezig") End If End Sub 

Code Uitleg

  • Ten eerste, Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Met deze code slaan we de samengevoegde ID- en afdelingswaarden op in kolom A.
  • lookup_val = ID & "_" & afdeling dit bepaalt dat de opzoekwaarde ID en afdeling zal zijn.
  • salaris = Application.WorksheetFunction.VLookup(lookup_val, Range("A: F"), 6, False) Hier slaan we het salaris van de betrokken werknemer op in een variabele met de naam salaris
  • Als Err. Nummer = 1004 Dan Dit is conditiecontrole. We controleren of het foutnummer 1004 is of niet. In Excel VBA betekent code 1004 dat de gezochte waarde niet is gevonden, verwijderd of gewist.

Stap 5: Nu komt er een pop-up zoals deze foto. Enter ID en Afdeling opeenvolgend

Stap 6: Na het indrukken van de Ok knop wordt de uiteindelijke uitvoer getoond

Stap 7: Als u de verkeerde ID of Afdeling, zal het onderstaande bericht verschijnen

Lees meer: Hoe VLOOKUP met meerdere voorwaarden in Excel werkt (2 methoden)

4. Informatie zoeken met een knop met VLOOKUP in VBA

Nu zullen we zien hoe we informatie kunnen achterhalen met behulp van een knop in plaats van de code handmatig uit te voeren. Ook hier zal de dataset dezelfde zijn als hierboven.

Stap 1: Selecteer eerst de Plaats optie onder de Ontwikkelaar tab

Stap 2: Selecteer vervolgens de Knop optie van Plaats

Stap 3: Plaats de knop volgens uw wensen en geef de naam van de knop op

Stap 4: Klik nu met de rechtermuisknop op de knop en selecteer Macro toewijzen

Stap 5: Maak nu een nieuwe macro en noem die vlookup_functie_4

Stap 6: Schrijf de onderstaande code in de VBA-console en Ren de code

Code:

 Sub vlookup_function_4() Dim rng als Range, FinalResult als Variant, Table_Range als Range, LookupValue als 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 

Stap 6: Voer nu een willekeurige ID in en druk op de knop

Lees meer: Gebruik van VBA VLOOKUP om waarden te vinden in een ander werkblad in Excel

Dingen om te onthouden

Veel voorkomende fouten Wanneer ze
1004 fout Wanneer de VBA vlookup-code de lookup_value niet kan vinden, geeft hij een 1004-foutmelding.
VLOOKUP-functie niet gevonden in VBA De Vlookup-functie kan in Excel VBA worden aangeroepen met behulp van WorksheetFunction.
Foutafhandeling De fout in de vlookup-functie kan worden gecontroleerd met een ga naar statement als het een fout oplevert.

Conclusie

Dit zijn enkele manieren om de VLOOKUP functie in VBA in Excel. Ik heb alle methoden met hun respectieve voorbeelden getoond, maar er kunnen nog vele andere iteraties zijn. Ik heb ook de grondbeginselen van de gebruikte functies besproken. Als u een andere methode hebt om dit te bereiken, deel die dan gerust met ons.

Hugh West is een zeer ervaren Excel-trainer en -analist met meer dan 10 jaar ervaring in de branche. Hij heeft een bachelor in Accounting en Finance en een master in Business Administration. Hugh heeft een passie voor lesgeven en heeft een unieke lesaanpak ontwikkeld die gemakkelijk te volgen en te begrijpen is. Zijn deskundige kennis van Excel heeft duizenden studenten en professionals over de hele wereld geholpen hun vaardigheden te verbeteren en uit te blinken in hun carrière. Via zijn blog deelt Hugh zijn kennis met de wereld en biedt hij gratis Excel-tutorials en online trainingen aan om individuen en bedrijven te helpen hun volledige potentieel te bereiken.