隐藏用户表单并显示指定的工作表

问题描述 投票:0回答:1

我加载一个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

excel vba userform
1个回答
0
投票

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

但是,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
© www.soinside.com 2019 - 2024. All rights reserved.