在同一代码中使用不同的工作簿

时间:2016-03-04 20:46:48

标签: excel vba

当我在代码中引用不同的工作簿时,我一直在使用"设置工作簿。打开"。

示例:

`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()

1 个答案:

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