Innehållsförteckning
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.xlsm4 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.