Hur letar jag upp / hittar värden i en annan arbetsbok?
Den här artikeln talar om hur man letar upp värden och returnerar data från en annan arbetsbok och hur man hittar / söker värden från en annan arbetsbok. Här kommer jag att presentera tre lösningar i detalj.
- Vlookup-data och returnera värden från en annan arbetsbok i Excel
- Vlookup-data och returnera värden från en annan sluten arbetsbok med VBA
Vlookup-data och returnera värden från en annan arbetsbok i Excel
Till exempel skapar du en fruktköpstabell i Excel, och nu måste du söka efter frukterna från en annan arbetsbok och returnera motsvarande priser enligt nedanstående skärmdumpar. Här hjälper jag dig att lösa det med VLOOKKUP-funktionen i Excel.
1. Öppna båda arbetsböckerna som du ska ta upp värden från och returnera värdena i.
2. Välj en tom cell som du returnerar pris, skriv formeln = VLOOKUP (B2, [Price.xlsx] Sheet1! $ A $ 1: $ B $ 24,2, FALSE) in i den och dra sedan dess Fill Handle för att tillämpa denna formel i intervallet som du behöver.

Anmärkningar:
(1) I ovanstående formel är B2 frukten som du kommer att slå upp från en annan arbetsbok, Price.xlsx anger filnamnet på arbetsboken du kommer att slå upp från, Sheet1 betyder arknamnet som du kommer att titta upp från, och A $ 1 : $ B $ 24 är det intervall som du kommer att titta upp från. Du kan ändra dem efter behov.
(2) Efter att du har stängt arbetsboken som du tittat upp från uppdateras formeln automatiskt till = VLOOKUP (B2, 'W: \ test \ [Price.xlsx] Sheet1'! $ A $ 1: $ B $ 24,2, FALSE), W: \ test \ är den sparande sökvägen för arbetsboken som du har tittat upp från.
Hittills har alla priser returnerats korrekt som vänster skärmdump visas. Och dessa priser uppdateras automatiskt om den ursprungliga arbetsboken du tittade upp från ändringar.
![]() | Formel är för komplicerad för att komma ihåg? Spara formeln som en automatisk textpost för återanvändning med bara ett klick i framtiden! Läs mer ... fri rättegång |

Lås upp Excel Magic med Kutools AI
- Smart utförande: Utför celloperationer, analysera data och skapa diagram – allt drivs av enkla kommandon.
- Anpassade formler: Skapa skräddarsydda formler för att effektivisera dina arbetsflöden.
- VBA-kodning: Skriv och implementera VBA-kod utan ansträngning.
- Formeltolkning: Förstå komplexa formler med lätthet.
- Textöversättning: Bryt språkbarriärerna i dina kalkylblad.
Vlookup-data och returnera värden från en annan sluten arbetsbok med VBA
Det kan vara en kull som är förvirrad att konfigurera sparningssökvägen, filnamnet och kalkylbladet i VLOOKUP-funktionen. Denna metod kommer att introducera en VBA för att lösa det enkelt.
1. tryck på andra + F11 för att öppna Microsoft Visual Basic for Applications-fönstret.
2. Klicka på Insert > Modulernaoch klistra sedan in under VBA-koden i öppningsmodulens fönster.
VBA: Vlookup-data och returvärden från en annan stängd arbetsbok
Private Function GetColumn(Num As Integer) As String
If Num <= 26 Then
GetColumn = Chr(Num + 64)
Else
GetColumn = Chr((Num - 1) \ 26 + 64) & Chr((Num - 1) Mod 26 + 65)
End If
End Function
Sub FindValue()
Dim xAddress As String
Dim xString As String
Dim xFileName As Variant
Dim xUserRange As Range
Dim xRg As Range
Dim xFCell As Range
Dim xSourceSh As Worksheet
Dim xSourceWb As Workbook
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xUserRange = Application.InputBox("Lookup values :", "Kutools for Excel", xAddress, Type:=8)
If Err <> 0 Then Exit Sub
Set xUserRange = Application.Intersect(xUserRange, Application.ActiveSheet.UsedRange)
xFileName = Application.GetOpenFilename("Excel Files (*.xlsx), *.xlsx", 1, "Select a Workbook")
If xFileName = False Then Exit Sub
Application.ScreenUpdating = False
Set xSourceWb = Workbooks.Open(xFileName)
Set xSourceSh = xSourceWb.Worksheets.Item(1)
xString = "='" & xSourceWb.Path & Application.PathSeparator & _
"[" & xSourceWb.Name & "]" & xSourceSh.Name & "'!$"
For Each xRg In xUserRange
Set xFCell = xSourceSh.Cells.Find(xRg.Value, , xlValues, xlWhole, , , False)
If Not (xFCell Is Nothing) Then
xRg.Offset(0, 2).Formula = xString & GetColumn(xFCell.Column + 1) & "$" & xFCell.Row
End If
Next
xSourceWb.Close False
Application.ScreenUpdating = True
End Sub
Anmärkningar: Denna VBA returnerar värden i en kolumn som ligger två kolumner bakom vald kolumn. Till exempel väljer jag kolumn B när jag använder denna VBA, värdena kommer tillbaka i kolumn D. Om du behöver ändra målkolumnen, ta reda på koden xRg.Offset (0, 2). Formel = xString & GetColumn (xFCell.Column + 1) & "$" & xFCell.Row och byt ut 2 till ett annat nummer som du behöver. 3. tryck på F5 eller klicka på Körning för att köra denna VBA.
4. I öppningsdialogrutan, ange det dataintervall som du ska slå upp och klicka på OK knapp.
5. Välj nu arbetsboken där du kommer att leta upp värden i dialogrutan Välj en arbetsbok och klicka på Öppen knapp.
Nu slås alla valda värden upp i den angivna stängda arbetsboken och motsvarande värden returneras i angiven kolumn. Se skärmdump:
Bästa kontorsproduktivitetsverktyg
Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid. Klicka här för att få den funktion du behöver mest...
Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare
- Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
- Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
- Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!