Hur man använder VLOOKUP i VBA (4 sätt)

  • Dela Detta
Hugh West

MS Excel erbjuder olika funktioner för att söka eller se vissa specifika värden eller element. VLOOKUP är en av dem. Den hjälper oss att söka efter önskade data från alla datamängder. Den gör det möjligt för oss att ange om vi ska leta efter en exakt matchning eller en ungefärlig matchning. Förutom att använda den här funktionen i Excel-formeln kan vi också använda den i VBA-kod. I den här artikeln kommer vi att se hur vi kan använda denna funktion. VLOOKUP-funktionen i VBA.

Ladda ner övningsboken

VLOOKUP i VBA.xlsm

4 sätt att använda VLOOKUP i VBA

1. Sök data manuellt med hjälp av VLOOKUP i VBA

Vi har ett dataset med information om anställda med deras ID, namn, avdelning, anställningsdatum och lön. Nu är vår uppgift att manuellt ta reda på information om anställda med hjälp av deras ID. I det här avsnittet kommer vi bara att ta reda på den anställdes lön med hjälp av deras ID.

Steg 1: Välj Visual Basic under Utvecklare flik (genväg Alt + F11 )

Steg 2: Då kommer ett fönster att komma. Välj Modul alternativ under Infoga knapp

Steg 3: Skriv nu följande kod i VBA-konsolen och tryck på knappen Kör knappen (genväg F5 )

Kod:

 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 

Steg 4: Nu kommer ett meddelande att visas och visar informationen.

Läs mer: VLOOKUP för att söka text i Excel (4 enkla sätt)

2. Sök data med indata med hjälp av VLOOKUP i VBA

Nu ska vi se hur vi kan söka eller extrahera data från tabeller eller intervall med inmatning. Som i bilden ska vi ta reda på namnet på det inmatade id:et från tabellen med information om anställda.

Steg 1: Öppna först VBA-konsolen genom att följa samma steg 1 och 2.

Steg 2: Ange nu följande kod i VBA-fönstret

Kod:

 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 

Steg 3: Ange nu ett ID i cellen D13 och kör koden

Steg 4: Namn som sparas mot ID visas.

Läs mer: 10 bästa metoder för VLOOKUP i Excel

Liknande läsningar

  • VLOOKUP fungerar inte (8 orsaker & lösningar)
  • INDEX MATCH och VLOOKUP-funktionen (9 exempel)
  • Använd VLOOKUP med flera kriterier i Excel (6 metoder + alternativ)
  • Excel VLOOKUP för att hitta sista värdet i kolumnen (med alternativ)
  • Excel VLOOKUP för att returnera flera värden vertikalt

3. Hitta information med inmatningsrutan med hjälp av VLOOKUP i VBA

Låt oss se hur vi kan söka data med hjälp av VBA:s inmatningsruta. För att söka behöver vi använda VLOOKUP funktionen i VBA-koden. Datamängden är densamma, men sökmetoden är annorlunda. Här är vår uppgift att ta reda på den anställdes lön genom att ange ID och avdelning.

Steg 1: Öppna först VBA-fönstret genom att följa samma steg 1 till 2.

Steg 2: Ange nu följande kod i VBA-konsolen och Kör den

Kod:

 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 

Steg 3: Detta kommer att skriva ut en kombinerad sträng med ID och avdelning i den första kolumnen.

Steg 4: Gå nu till VBA-konsolen igen, ange hela koden och kör igen.

Kod:

 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("Ange den anställdes ID") department = InputBox("Ange den anställdes avdelning") lookup_val = ID & "_" & department OnError GoTo Message check: salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A:F"), 6, False) MsgBox ("Lönen för den anställde är $" & salary) Message: If Err.Number = 1004 Then MsgBox ("Employee data not present") End If End Sub 

Kod Förklaring

  • För det första, Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Med den här koden lagrar vi de sammanlänkade värdena ID och Department i kolumnen A.
  • lookup_val = ID & "_" & avdelning Detta definierar att uppslagsvärdet kommer att vara ID och avdelning.
  • salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A: F"), 6, False) Här lagrar vi lönen för den matchade arbetstagaren i en variabel som heter lön
  • Om felnummer = 1004 Det här är en tillståndskontroll. Vi kontrollerar om felnumret är 1004 eller inte. I Excel VBA betyder koden 1004 att det sökta värdet inte hittas, raderas eller tas bort.

Steg 5: Nu visas en popup-fönsterruta som den här bilden. Enter ID och Avdelning sekventiellt

Steg 6: Efter att ha tryckt på Ok visas det slutliga resultatet

Steg 7: Om du skriver in fel ID eller . Avdelning, Det kommer att visa nedanstående meddelande

Läs mer: Hur man VLOOKUP med flera villkor i Excel (2 metoder)

4. Hitta information med en knapp med hjälp av VLOOKUP i VBA

Nu ska vi se hur vi kan få fram information med hjälp av en knapp i stället för att köra koden manuellt. Datamängden är densamma som ovan.

Steg 1: Välj först den Infoga alternativet i enlighet med Utvecklare fliken

Steg 2: Välj sedan Knapp alternativet från Infoga

Steg 3: Placera knappen enligt dina krav och ge den ett namn.

Steg 4: Högerklicka nu på knappen och välj Tilldela makro

Steg 5: Skapa nu ett nytt makro och namnge det vlookup_funktion_4

Steg 6: Skriv nedanstående kod i VBA-konsolen och Kör koden

Kod:

 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 

Steg 6: Ange nu ett valfritt ID och tryck på knappen

Läs mer: Användning av VBA VLOOKUP för att hitta värden från ett annat arbetsblad i Excel

Saker att komma ihåg

Vanliga fel När de visar
1004 fel När VBA vlookup-koden inte kan hitta lookup_value ger den felmeddelande 1004.
VLOOKUP-funktionen finns inte i VBA Vlookup-funktionen kan anropas i Excel VBA med hjälp av WorksheetFunction.
Hantering av fel Felet i vlookup-funktionen kan kontrolleras med hjälp av en Gå till om det returnerar ett fel.

Slutsats

Detta är några sätt att använda VLOOKUP i VBA i Excel. Jag har visat alla metoder med respektive exempel, men det kan finnas många andra iterationer. Jag har också diskuterat grunderna för de använda funktionerna. Om du har någon annan metod för att uppnå detta, är du välkommen att dela med dig av den till oss.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.