Vba excel vlookup 2工作手册

Vba excel vlookup 2工作手册,vba,excel,Vba,Excel,我正在尝试在2个工作簿上编程查找,工作簿路径和名称链接到单元格以进行动态更新。。。我的当前代码出现错误: 第29行“对象不支持属性或方法”设置查找 你能帮我解决这个问题吗 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

我正在尝试在2个工作簿上编程查找,工作簿路径和名称链接到单元格以进行动态更新。。。我的当前代码出现错误:

第29行“对象不支持属性或方法”设置查找

你能帮我解决这个问题吗

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

您已经将
ws2
工作表对象设置为
wbook2
,此行
Set ws2=wbook2.Sheets(“数据”)

因此,请更改您的:

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


这同样适用于:

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

Set srchRange = ws1.Range("$A:$E")
,使用wbook2.ws2更改


到:
使用ws2

您已经将
ws2
工作表对象设置为
wbook2
,此行
Set ws2=wbook2.Sheets(“数据”)

因此,请更改您的:

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


这同样适用于:

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

Set srchRange = ws1.Range("$A:$E")
,使用wbook2.ws2更改


to:
与ws2一起运行,但与“rowstart”不起作用-我希望vlookup运行整个Dcolumn@tj123如果您解释一下您的代码试图实现什么,也许我可以提供一个更可靠(更容易)的解决方案我希望vlookup完成WS2中第11-293行的G到J列现在正在运行,但“rowstart”不起作用-我希望vlookup运行整个D列column@tj123如果您解释一下您的代码试图实现什么,也许我可以提供一个更可靠(更容易)的解决方案我希望vlookup完成WS2中第11-293行的G到J列。您打算如何处理
rowstart=.Cells(G,11)
。这可能意味着是
rowstart=.Cells(11,G)
吗?这不起作用。你想用
rowstart=.Cells(G,11)
做什么?也就是说,将变量
rowstart
分配给变量
G
定义的行中K列中的单元格值(并且
G
似乎没有给定值,因此
0
,因此您正在访问不存在的单元格
K0
)。这就是你想要做的吗?你想要用
rowstart=.Cells(G,11)
做什么。这可能意味着是
rowstart=.Cells(11,G)
吗?这不起作用。你想用
rowstart=.Cells(G,11)
做什么?也就是说,将变量
rowstart
分配给变量
G
定义的行中K列中的单元格值(并且
G
似乎没有给定值,因此
0
,因此您正在访问不存在的单元格
K0
)。这就是你想做的吗?