我加载一个UserForm,做一些事情,然后想隐藏该UserForm并显示其中一个打开的工作表。该工作表具有一个命令按钮,用于运行将再次显示UserForm的宏。发生的是,当我隐藏UserForm时,ActiveSheet成为在加载UserForm时处于活动状态的ActiveSheet。随后定义活动工作表的尝试将被忽略,没有错误消息。
UserForm1.Show
' stuff
Workbooks("datafile").Sheets(1).Activate ' ActiveSheet is correctly redefined
UserForm1.Hide ' ActiveSheet changes to the active sheet when UserForm was loaded
Workbooks("datafile").Sheets(1).Activate ' Ignored. no change to ActiveSheet
' Shows whomever loaded the user form: either the VBA debugger or the original worksheet
我无法重新创建此问题,发布的代码对我有用。
但是,UserForm1
可能与以下指令重叠,请尝试添加DoEvents
功能,然后再次激活所需的工作表。像这样的东西:
UserForm1.Show
' stuff
Workbooks("datafile").Sheets(1).Activate ' ActiveSheet is correctly redefined
UserForm1.Hide ' ActiveSheet changes to the active sheet when UserForm was loaded
DoEvents
Workbooks("datafile").Sheets(1).Activate