Sådan bruger du VLOOKUP i VBA (4 måder)

  • Del Dette
Hugh West

MS Excel tilbyder forskellige funktioner til at søge eller se nogle bestemte værdier eller elementer. VLOOKUP er en af dem. Den hjælper os med at søge efter ønskede data fra et datasæt. Den giver os mulighed for at angive, om vi skal søge efter et nøjagtigt match eller et tilnærmelsesvis match. Ud over at bruge denne funktion i Excel-formlen kan vi også bruge den i VBA-kode. I denne artikel vil vi se, hvordan vi kan bruge denne VLOOKUP-funktion i VBA.

Download arbejdsbogen til øvelser

VLOOKUP i VBA.xlsm

4 måder at bruge VLOOKUP på i VBA

1. Søg data manuelt ved hjælp af VLOOKUP i VBA

Lad os have et datasæt med medarbejderoplysninger med deres ID, navn, afdeling, tiltrædelsesdato og løn. Nu er det vores opgave at finde ud af medarbejderoplysningerne manuelt ved hjælp af deres ID. I dette afsnit vil vi blot finde ud af medarbejderens løn ved hjælp af deres ID.

Trin 1: Vælg Visual Basic under Udvikler fanen (Genvej Alt + F11 )

Trin 2: Så kommer der et vindue. Vælg Modul under Indsæt knap

Trin 3: Skriv nu følgende kode i VBA-konsollen og tryk på Kør knappen (genvej F5 )

Kode:

 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 

Trin 4: Nu kommer der en besked og viser oplysningerne

Læs mere: VLOOKUP til at søge i tekst i Excel (4 nemme måder)

2. Søg data med input ved hjælp af VLOOKUP i VBA

Lad os nu se, hvordan vi kan søge eller udtrække data fra tabeller eller områder med input. Som på billedet finder vi navnet på det indtastede id fra tabellen med medarbejderoplysninger.

Trin 1: Åbn først VBA-konsollen ved at følge de samme trin fra trin 1 til trin 2

Trin 2: Indtast nu følgende kode i VBA-vinduet

Kode:

 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 

Trin 3: Indtast nu et ID i cellen D13 og køre koden

Trin 4: Navn som er gemt i forhold til ID'et, vil blive vist

Læs mere: 10 bedste fremgangsmåder med VLOOKUP i Excel

Lignende læsninger

  • VLOOKUP virker ikke (8 grunde & løsninger)
  • INDEX MATCH vs. VLOOKUP-funktion (9 eksempler)
  • Brug VLOOKUP med flere kriterier i Excel (6 metoder + alternativer)
  • Excel VLOOKUP til at finde den sidste værdi i kolonnen (med alternativer)
  • Excel VLOOKUP til at returnere flere værdier lodret

3. Find oplysninger med indtastningsfelt ved hjælp af VLOOKUP i VBA

Lad os se, hvordan vi kan søge i data ved hjælp af VBA's indtastningsfelt. For at søge skal vi bruge VLOOKUP Funktionen i VBA-koden. Igen vil datasættet være det samme, men søgemetoden vil være anderledes. Her er vores opgave at finde frem til medarbejderens løn ved at indtaste ID og afdeling.

Trin 1: Åbn først VBA-vinduet ved at følge de samme trin 1 til 2

Trin 2: Indtast nu følgende kode i VBA-konsollen og Kør det

Kode:

 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 

Trin 3: Dette vil udskrive en kombineret streng med ID og afdeling i den første kolonne

Trin 4: Gå nu igen til VBA-konsollen og indtast den fulde kode, og kør igen

Kode:

 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("Indtast ID for medarbejderen") department = InputBox("Indtast medarbejderens afdeling") lookup_val = ID & "_" & department OnError GoTo Message check: salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A:F"), 6, False) MsgBox ("Lønnen for medarbejderen er $" & salary) Message: If Err.Number = 1004 Then MsgBox ("Medarbejderdata ikke til stede") End If End Sub 

Kode Forklaring

  • For det første, Celler(i, "A").Værdi = Celler(i, "B").Værdi & "_" & Celler(i, "D").Værdi Med denne kode gemmer vi de sammenkædede værdier ID og afdeling i kolonne A.
  • lookup_val = ID & "_" & afdeling dette definerer, at opslagsværdien vil være ID og afdeling.
  • salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A: F"), 6, False) her gemmer vi lønnen for den matchede medarbejder i en variabel ved navn løn
  • Hvis fejlnummer = 1004 Derefter Dette er en tilstandskontrol. Vi kontrollerer, om fejlnummeret er 1004 eller ej. I Excel VBA betyder 1004-koden, at den søgte værdi ikke er fundet, slettet eller fjernet.

Trin 5: Nu vil der komme en pop-up som dette billede. Indtast ID og Afdeling sekventielt

Trin 6: Når du har trykket på Ok knappen vil det endelige output blive vist

Trin 7: Hvis du indtaster den forkerte ID eller Afdeling, den vil vise nedenstående meddelelse

Læs mere: Sådan VLOOKUP med flere betingelser i Excel (2 metoder)

4. Find oplysninger med en knap ved hjælp af VLOOKUP i VBA

Nu skal vi se, hvordan vi kan finde oplysninger ved hjælp af en knap i stedet for at køre koden manuelt. Igen vil datasættet være det samme som ovenfor.

Trin 1: Vælg først den Indsæt under Udvikler fanen

Trin 2: Vælg derefter den Knap fra Indsæt

Trin 3: Placer knappen efter dit behov, og angiv navnet på knappen

Trin 4: Højreklik nu på knappen, og vælg Tildel makro

Trin 5: Opret nu en ny makro og navngiv den vlookup_funktion_4

Trin 6: Skriv nedenstående kode i VBA-konsollen og Kør koden

Kode:

 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 

Trin 6: Indtast nu et vilkårligt ID og tryk på knappen

Læs mere: Brug af VBA VLOOKUP til at finde værdier fra et andet regneark i Excel

Ting at huske

Almindelige fejl Når de viser
1004 fejl Når VBA vlookup-koden ikke kan finde lookup_value, giver den en 1004-fejl.
VLOOKUP-funktionen findes ikke i VBA Vlookup-funktionen kan kaldes i Excel VBA ved at bruge WorksheetFunction.
Håndtering af fejl Fejlen i vlookup-funktionen kan kontrolleres ved hjælp af en Gå til hvis den returnerer en fejl.

Konklusion

Dette er nogle af de måder, hvorpå du kan bruge VLOOKUP funktion i VBA i Excel. Jeg har vist alle metoderne med deres respektive eksempler, men der kan være mange andre gentagelser. Jeg har også diskuteret de grundlæggende principper for de anvendte funktioner. Hvis du har en anden metode til at opnå dette, er du velkommen til at dele den med os.

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.