【发布时间】:2016-07-28 05:50:26
【问题描述】:
在我运行一个宏(从 sql server 中选择记录,不引用另一个工作簿)后,其他打开的工作簿之一被随机激活。
宏在 book1 中,我从 book1 运行宏。
最后, book2(或 book3 等)被激活。为什么?!
我试着在 End Sub 之前放
Dim Wb As Workbook
Set Wb = Active/ThisWorkbook
Wb.Activate
或
msgbox "ok"
但仍会飞到另一个打开的工作簿(在 book2 上弹出消息框)
这件事并非每次都会发生,只是有时会随机发生。
谢谢你
更新:由于我在 book2 中修复了循环引用,因此似乎停止了。
【问题讨论】:
-
宏是否将结果放入新书?
-
Debug.Print Wb.Name返回什么? -
您是否尝试过关注 Application.Activeworkbook 并在更改时中断,不确定这是否有效,因为无法在 mo 进行测试。
-
我认为这是因为
Set Wb = Activeworkbook将 Wb 变量设置为在运行宏之前处于活动状态的工作簿。请改用Set Wb = ThisWorkbook。