【问题标题】:Hide userform and show a specified worksheet隐藏用户窗体并显示指定的工作表
【发布时间】:2019-10-11 15:52:21
【问题描述】:

我加载一个用户窗体,做一些事情,然后想隐藏那个用户窗体并显示一个打开的工作表。此工作表有一个命令按钮来运行将再次显示用户窗体的宏。 发生的情况是,当我隐藏用户表单时,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】:

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

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

    【讨论】:

      【解决方案2】:

      发现用户表单链接到加载时处于活动状态的工作表。因此,如果您希望在隐藏或最小化表单时显示特定工作表,请确保在加载该表单时它处于活动状态。加载用户窗体时,您似乎无法更改 ActiveSheets;您被加载表单时的工作表卡住了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多