VBA更改活动工作簿

5
我有一个电子表格,其中的VBA会打开其他的电子表格,并将其暂时设置为活动worksheet。但是,我有一个循环,在第一次迭代结束时,我需要将活动worksheet设置为最初启动VBA模块的那个。我不能设置一个新的Workbook对象来打开原始的电子表格,因为原始的电子表格仍然在后台运行,并且它说它已经打开了。
我的问题是,当我没有一个工作簿对象来引用它时,我需要改变活动Workbook为原始的那一个???
'Original workbook is active implicitly

'loop begins

'change active workbook to something else


'Need to change back to original workbook here- but don't have a VBA workbook object

'end of loop

你为什么要更改活动工作簿?难道你不能在不更改活动状态的情况下明确引用其他工作簿吗? - Brad
1个回答

20

使用 ThisWorkbook 可以引用包含代码的原始工作簿。

或者在代码开始时

Dim Wb As Workbook
Set Wb = ActiveWorkbook

激活所有打开的工作簿,并返回到ThisWorkbook的示例代码。

Sub Test()
Dim Wb As Workbook
Dim Wb2 As Workbook
Set Wb = ThisWorkbook
For Each Wb2 In Application.Workbooks
    Wb2.Activate
Next
Wb.Activate
End Sub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接