在代码中引用不同的工作簿时,我一直在使用“ 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()
Dim book1 as Workbook
您在此处声明类型为的变量Workbook
。使用Set
关键字时,将为变量分配一个reference。
Set book1 = Workbooks.Open("path\filename1")`
在这里,引用是通过调用Excel对象模型中的一个函数(调用该函数的结果)Excel.Application.Workbooks.Open
返回的,如果操作成功,该函数可以打开工作簿并返回对其打开的工作簿的引用。
有时这很不方便,因为要再次引用以前的工作簿,我将不得不关闭工作簿并重新打开它。
一点也不。您已经拥有对两个工作簿的引用,您只需要使用它们就可以了!
Set book1 = Workbooks.Open("path\filename1")
Set book2 = Workbooks.Open("path\filename2")
'work with book1
book1.Sheets(1).Range("A1") = "Hello"
'work with book2
book2.Sheets(1).Range("A1") = "World!"
'all done, clean up now:
book1.Close
book2.Close
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句