Waarden opzoeken / vinden in een andere werkmap?
In dit artikel wordt besproken hoe u waarden opzoekt en gegevens retourneert uit een andere werkmap, en hoe u waarden uit een andere werkmap zoekt / zoekt. Hier zal ik drie oplossingen in detail introduceren.
- Vlookup-gegevens en retourwaarden uit een andere werkmap in Excel
- Vlookup-gegevens en retourwaarden uit een andere gesloten werkmap met VBA
Vlookup-gegevens en retourwaarden uit een andere werkmap in Excel
U maakt bijvoorbeeld een fruitaankooptabel in Excel en nu moet u het fruit uit een andere werkmap opvullen en de bijbehorende prijzen retourneren zoals hieronder weergegeven schermafbeeldingen. Hier zal ik je helpen het op te lossen met de functie VERT.ZOEKEN in Excel.
1. Open beide werkmappen waaruit u waarden wilt opvullen en waarden wilt retourneren.
2. Selecteer een lege cel waarvan u de prijs wilt retourneren, typ de formule = VERT.ZOEKEN (B2, [Price.xlsx] Sheet1! $ A $ 1: $ B $ 24,2, FALSE) erin en sleep vervolgens de vulhendel om deze formule toe te passen op het bereik dat u nodig hebt.
Opmerkingen:
(1) In bovenstaande formule is B2 de vrucht die u opzoekt vanuit een andere werkmap, Price.xlsx geeft de bestandsnaam aan van de werkmap waaruit u opzoekt, Sheet1 betekent de bladnaam waaruit u opzoekt, en A $ 1 : $ B $ 24 is het bereik waaruit u opzoekt. U kunt ze naar behoefte wijzigen.
(2) Na het sluiten van de werkmap waaruit u hebt opgezocht, wordt de formule automatisch bijgewerkt naar = VERT.ZOEKEN (B2, 'W: \ test \ [Price.xlsx] Sheet1'! $ A $ 1: $ B $ 24,2, FALSE)is de W: \ test \ het opslagpad van de werkmap waaruit u hebt opgezocht.
Tot nu toe zijn alle prijzen correct geretourneerd zoals het linker screenshot wordt getoond. En deze prijzen worden automatisch bijgewerkt als de originele werkmap die u hebt opgezocht van wijzigingen.
De formule is te ingewikkeld om te onthouden? Sla de formule op als een Auto Text-invoer voor hergebruik met slechts één klik in de toekomst! Lees meer ... gratis trial |
Vlookup-gegevens en retourwaarden uit een andere gesloten werkmap met VBA
Het kan een verwarring zijn om het opslagpad, de bestandsnaam en het werkblad in de functie VERT.ZOEKEN te configureren. Deze methode introduceert een VBA om het gemakkelijk op te lossen.
1. druk de anders + F11 -toetsen om het venster Microsoft Visual Basic for Applications te openen.
2. Klik op het Invoegen > Moduleen plak vervolgens onder VBA-code in het openingsmodulevenster.
VBA: Vlookup-gegevens en retourwaarden uit een andere gesloten werkmap
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
Note: Deze VBA retourneert waarden in een kolom die 2 kolommen achter de geselecteerde kolom staat. Ik selecteer bijvoorbeeld kolom B bij het toepassen van deze VBA, waarden zullen terugkeren in kolom D.Als u de bestemmingskolom moet wijzigen, zoek dan de code op xRg.Offset (0, 2) .Formula = xString & GetColumn (xFCell.Column + 1) & "$" & xFCell.Row en vervangen 2 naar een ander nummer als je nodig hebt.
3. druk de F5 toets of klik op de lopen knop om deze VBA uit te voeren.
4. Geef in het openingsdialoogvenster het gegevensbereik op dat u wilt opzoeken en klik op OK knop.
5. Selecteer nu de werkmap waar u waarden wilt opzoeken in het dialoogvenster Selecteer een werkmap openen en klik op de Openen knop.
Nu worden alle geselecteerde waarden opgezocht in de opgegeven gesloten werkmap en worden de bijbehorende waarden geretourneerd in de opgegeven kolom. Zie screenshot:
Beste Office-productiviteitstools
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie als nooit tevoren. Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en tijd te besparen. Klik hier om de functie te krijgen die u het meest nodig heeft...
Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker
- Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
- Verhoogt uw productiviteit met 50% en vermindert honderden muisklikken voor u elke dag!