Inhoudsopgave
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.xlsm4 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.