Vba 活动工作簿在宏执行后随机更改

Vba 活动工作簿在宏执行后随机更改,vba,excel,macros,Vba,Excel,Macros,运行宏(从sql server中选择记录,不引用其他工作簿)后,会随机激活另一个打开的工作簿。 宏在book1中,我从book1运行宏。 最后,book2(或book3等)被激活。为什么 我试着把它放在最前面 Dim Wb As Workbook Set Wb = Active/ThisWorkbook Wb.Activate 或 但仍会转到另一个打开的工作簿(book2上会弹出消息框) 这件事并不是每次都会发生,只是偶尔会随机发生。 多谢各位 更新:自从我在第二册中修复了一个循

运行宏(从sql server中选择记录,不引用其他工作簿)后,会随机激活另一个打开的工作簿。
宏在book1中,我从book1运行宏。
最后,book2(或book3等)被激活。为什么
我试着把它放在最前面

Dim Wb As Workbook  
Set Wb = Active/ThisWorkbook  
Wb.Activate   

但仍会转到另一个打开的工作簿(book2上会弹出消息框)
这件事并不是每次都会发生,只是偶尔会随机发生。 多谢各位

更新:自从我在第二册中修复了一个循环引用,它似乎停止了

如果你把上面的代码放在第二册。模块1,选择Book1并运行它

您将在即时窗口中获得以下输出:

Book1
Book2

宏是否将结果放入新书中?Debug.Print Wb.Name返回什么?您是否在Application.Activeworkbook上尝试过监视并在更改时中断,不确定是否有效,因为无法仅在mo进行测试。我认为这是因为
Set Wb=Activeworkbook
在运行宏之前将Wb变量设置为活动工作簿。改为使用
Set Wb=thiswoolk
。我得到book1,无论是activeworkbook还是thiswoolk。你能发布安装的屏幕截图和完整的代码吗?
Sub Bus()
Dim Wb As Workbook
Set Wb = ActiveWorkbook
Debug.Print Wb.Name

Set Wb = ThisWorkbook
Debug.Print Wb.Name


End Sub
Book1
Book2