excel vlookup 2工作簿

时间:2017-10-26 06:55:09

标签: excel vba excel-vba

我试图在2个工作簿中编写查找,工作簿路径和名称链接到单元格以进行动态更新...我当前的代码出错了:

“对象不支持属性或方法”第29行set lookfor

你能帮我解决这个问题吗?

Sub Lookup()

Dim wb1 As String, wb2 As String
Dim wbook1 As Workbook, wbook2 As Workbook
Dim ws1 As Worksheet, ws2 As Worksheet
Dim lookFor As Range
Dim srchRange As Range
Dim wb1name As String, wb2name As String
Dim wb1path As String, wb2path As String
Dim sFormulaPre As String, sFormulaSuff As String
Dim rowstart As Long


wb1name = Workbooks("r.xlsm").Sheets("Front sheet").Range("B3").Text
wb2name = Workbooks("r.xlsm").Sheets("Front sheet").Range("AA1").Text

wb1path = Workbooks("r.xlsm").Sheets("Front sheet").Range("AB1").Text
wb2path = Workbooks("r.xlsm").Sheets("Front sheet").Range("AB1").Text

wb1 = wb1path & wb1name
wb2 = wb2path & wb1name

Set wbook1 = Workbooks(wb1name)
Set wbook2 = Workbooks(wb2name)

Set ws1 = wbook1.Sheets("DATA1")
Set ws2 = wbook2.Sheets("DATA")

Set lookFor = wbook2.ws2.Range("$G:$J")
Set srchRange = wbook1.ws1.Range("$A:$E")

Dim bIsEmpty As Boolean

sFormulaPre = "vlookup(D"
sFormulaSuff = ",srchRange, 2,FALSE)"

If IsEmpty(Workbooks("r.xlsm").Sheets("Front sheet").Range("Y1")) = False Then
    With wbook2.ws2
       rowstart = .Cells(G, 11)
       MsgBox sFormulaPre & rowstart & sFormulaSuff
    End With
ElseIf IsEmpty(Workbooks("Rates, percentages calculator.xlsm").Sheets("Front sheet").Range("Y1")) = True Then
    bIsEmpty = True
End If

End Sub

1 个答案:

答案 0 :(得分:2)

您已将ws2工作表对象设置为wbook2,此行Set ws2 = wbook2.Sheets("DATA")

所以改变你的:

Set lookFor = wbook2.ws2.Range("$G:$J")

为:

Set lookFor = ws2.Range("$G:$J")

同样适用:

Set srchRange = wbook1.ws1.Range("$A:$E")

应该是:

Set srchRange = ws1.Range("$A:$E")

,更改With wbook2.ws2

至:With ws2