我的宏(在另一个工作簿中)具有硬编码的文件名(old.xls)。当我执行宏时,old.xls已经打开。即使如此,下面的行仍提示我选择一个文件。
.Formula = "=IF(AND(ISNUMBER(VALUE(MID(Q1, 2, 1))),LEFT(TRIM(Q1), 1) = ""R""),VLOOKUP(Q1 & "" *"",[old.xls]Sheet1!$D:$V,19,0),VLOOKUP(Q1,[old.xls]Sheet1!$E:$V,18,0))"
请告知。为什么宏不引用已经打开的old.xls?为什么每次都要求我选择old.xls?
每次运行宏Excel都会提示我打开文件菜单。
答案 0 :(得分:0)
我很确定您应该测试完整的参考资料:
Dim test As String
test = ThisWorkbook.Path & "\"
'your WITH block code...
.Formula = "=IF(AND(ISNUMBER(VALUE(MID(Q1, 2, 1))),LEFT(TRIM(Q1), 1) = ""R""),VLOOKUP(Q1 & "" *"",'" & test & "[old.xls]Sheet1'!$D:$V,19,0),VLOOKUP(Q1,'" & test & "[old.xls]Sheet1'!$E:$V,18,0))"
如果仍然有提示,我将关闭old.xls文件并检查打开的简单文件:
Sub openTest()
Dim test As String
test = ThisWorkbook.Path & "\old.xls"
Workbooks.Open (test)
End Sub