我想知道如何通过vba方法使用vlookup在Microsoft Excel中的两个工作簿之间的链接

我有2个文件: vlookup.xlsxvlookup.xlsx

这就是我在VBA中input的内容:

 Sub Loop8() Dim filename1 As String filename1 = "C:\Users\tom\Desktop[vlookup.xlsx]" Do ActiveWorkbook.Worksheets("Sheet4"),Range("AB2")=vlookup(Y2,"& filename1 & "Sheet1!$Y:$AB),4,false)" ActiveCell.Offset(0, 1).Select Loop Until IsEmpty(ActiveCell.Offset(0, -1)) End Sub 

PS: Y2正在参考产品代码。

下面的代码应该为你工作。

 Sub Loop8() Dim fileName As String, filePath As String Dim lookupWB As Workbook Dim lookupWS As Worksheet, currWS As Worksheet Dim wb As Workbook, ws As Worksheet Dim book2Name As String Set currWS = ThisWorkbook.Sheets("Sheet4") fileName = "vlookup.xlsx" filePath = "C:\Users\tom\Desktop\" & fileName If IsBookOpen(fileName) = False Then Workbooks.Open (filePath) Set lookupWB = Workbooks(fileName) Set lookupWS = lookupWB.Sheets("Sheet1") currWS.Range("AB2") = Application.WorksheetFunction.VLookup(currWS.Range("Y2").Value, lookupWS.Range("$Y:$AB"), 4,False) End Sub 

IsBookOpenfunction:

 Function IsBookOpen(FileName As String) Dim ff As Long, ErrNo As Long On Error Resume Next ff = FreeFile() Open FileName For Input Lock Read As #ff Close ff ErrNo = Err On Error GoTo 0 Select Case ErrNo Case 0: IsBookOpen = False Case 70: IsBookOpen = True Case Else: Error ErrNo End Select End Function 

IsBookOpen函数是从这里写的@SiddharthRout