vba动态vlookup范围

时间:2017-10-05 09:17:16

标签: vba excel-vba excel

我想让我的vlookup范围动态,所以我使用的是变量 col ,但我得到的只是结果列中的#N / A.

Private Sub CommandButton1_Click()

path3 = Application.GetOpenFilename(Title:="Please browse Output tab excel file")
Set wbs3 = Workbooks.Open(path3)

Set aCell1 = wbs3.Sheets("Output").Range("A1:X1").Find(What:="Functions", LookIn:=xlValues, LookAt:=xlPart, _
MatchCase:=False, SearchFormat:=False)
col = aCell1.Column

lastrow1 = wbs3.Sheets("Analysis").Columns("A").Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row
With wbs3.Sheets("Analysis").Range("I2:I" & lastrow1)
    .Formula = "=VLOOKUP(H2,'Output'!col:col,1,0)"
    .Value = .Value
End With

End Sub

1 个答案:

答案 0 :(得分:2)

在公式中放置col对它没有任何意义,因为公式不会解析col的含义。相反,你可以使用字符串连接来解析文本。

.Formula = "=VLOOKUP(H2,'Output'!col:col,1,0)"

变为

.Formula = "=VLOOKUP(H2,'Output'!" & col.address & ",1,0)"