宏会提示我选择文件,即使文件已打开

时间:2019-01-17 04:36:05

标签: excel vba

我的宏(在另一个工作簿中)具有硬编码的文件名(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都会提示我打开文件菜单。

1 个答案:

答案 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