首页 > 解决方案 > 隐藏用户窗体并显示指定的工作表

问题描述

我加载一个用户窗体,做一些事情,然后想隐藏那个用户窗体并显示一个打开的工作表。此工作表有一个命令按钮来运行将再次显示用户窗体的宏。发生的情况是,当我隐藏 UserForm 时,ActiveSheet 成为加载 UserForm 时处于活动状态的那个。定义活动工作表的后续尝试将被忽略,没有错误消息。

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

标签: excelvbauserform

解决方案


我无法重新创建此问题,发布的代码对我有用。

但是,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

推荐阅读