【发布时间】:2016-03-05 05:22:28
【问题描述】:
当在代码中引用不同的工作簿时,我一直在使用“Set Workbooks.Open”。
例子:
`Dim wbname1 as Workbook
Dim wbname2 as Workbook
'code which refers to wbname1
Set wbname1 = Workbooks.Open("path\filename")
'code which refers to wbname2
Set wbname2 = Workbooks.Open("path\filename")`
这有时很不方便,因为要再次参考以前的工作簿,我必须关闭工作簿并重新打开它。
例子:
` 'code which refers to wbname1
Set wbname1 = Workbooks.Open("path\filename")
wbname1.Close True
'code which refers to wbname2
Set wbname2 = Workbooks.Open("path\filename")
'code which refers again to wbname1
Set wbname1 = Workbooks.Open("path\filename")`
我不得不解决这个问题,尤其是在循环中使用不同的工作簿时。
有没有比使用更简单的方法来引用不同的工作簿
Set Workbooks.Open()
【问题讨论】:
-
您只需在工作簿关闭时
Workbooks.Open。如果它已经打开,你可以写Set wbname1 = Workbooks("myWB.xlsx"),也就是说,一旦你打开它,它总是会设置你给它的变量名,不需要关闭并重新打开它。完成处理后关闭它。 -
不确定我是否理解您的问题。如果您在工作簿上进行操作,则在完成后将其关闭。如果您需要在任何时候打开多个工作簿,只需使用数组或其他东西来跟踪它。但是在你完成它们之后关闭它们。保持打开状态,直到完成。