当我在代码中引用不同的工作簿时,我一直在使用"设置工作簿。打开"。
示例:
`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()
答案 0 :(得分:0)
Dim book1 as Workbook
您在此处声明了一个Workbook
类型的变量。当您使用Set
关键字时,您分配变量a 引用。
Set book1 = Workbooks.Open("path\filename1")`
此处引用作为调用Excel.Application.Workbooks.Open
的结果返回,这是Excel对象模型中的一个函数,它打开工作簿并返回引用如果操作成功,则打开它打开的工作簿。
这有时不方便,因为为了再次引用以前的工作簿,我必须关闭工作簿并重新打开它。
完全没有。 您已经拥有对两个工作簿的引用,您需要做的就是使用它们!
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