【发布时间】:2015-06-13 09:58:29
【问题描述】:
我是 excel 宏 vba 的新手。我的 vlookup 代码有问题,它引用了用户选择的另一个工作簿。
这是我的代码:
Private Sub vlookups()
Dim data_file_new As String
Dim i As Integer
Dim a As String, b As String, path As String
data_file_new = CStr(Application.GetOpenFilename(FileFilter:="Excel Workbooks (*.xls*),*.xls*", Title:="Select new data file for VLOOKUP"))
path = data_file_new
a = "=VLOOKUP(A:A,'[" & path & "]Source'!$A:$AB,28,0)"
b = "=VLOOKUP(A:A,'[" & path & "]Source'!$A:$AJ,36,0)"
i = 7
Do Until Sheets("Macro Template").Cells(i, 1) = ""
Sheets("Macro Template").Cells(i, 37) = a
Sheets("Macro Template").Cells(i, 38) = b
i = i + 1
Loop
End Sub
我的问题是我的代码没有为 vlookup 提供正确的公式。相反,它给出了这个公式:
=VLOOKUP(A:A,'[E:\AP NO APPROVAL\[No Approval Monitoring Log_June 2015 xlsx.xlsx]Source]No Approval Monitoring Log_June'!$A:$AB,28,0)
正确的公式是这样的:
=VLOOKUP(A:A,'E:\AP NO APPROVAL\[No Approval Monitoring Log_June 2015 xlsx.xlsx]Source'!$A:$AB,28,0)
任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
当您尝试粘贴正确的公式时会发生什么?
-
值显示正确。不适用
-
你看过
path中的实际值吗?尝试在为path赋值的行上放置一个断点,看看它的值是多少。听起来它的值不正确 -
它有所选文件的路径,包括文件名。但我不知道为什么它显示错误的公式
-
首先
"=VLOOKUP(A:A,'["应该是"=VLOOKUP(A:A,'"其次。我想知道你是如何得到第一个公式的。您的第一个公式应该以]Source'!$A:$AB,28,0)结尾,您能帮我重新检查一下吗?