【发布时间】:2019-04-02 20:37:03
【问题描述】:
我已经设置了一个新的、空的、无模式的用户表单,以用最少的代码解决我的问题。
当打开工作簿时,执行以下代码以隐藏 Excel 并显示用户窗体。这是工作簿的唯一代码。
Private Sub Workbook_Open()
UserForm1.Show
If Application.Windows.Count <> 1 Then
Application.Windows("test.xlsm").Visible = False
Else
Application.Visible = False
End If
End Sub
我有一个只有一个按钮的空用户表单。此用户表单的唯一代码是:
Private Sub CommandButton1_Click()
Application.Windows("test.xlsm").Visible = True
Application.Visible = True
Unload Me
End Sub
最后一件事是第一个工作表上的按钮,用于启动与打开工作簿时相同的过程。其代码:
Sub Button1_Click()
UserForm1.Show
If Application.Windows.Count <> 1 Then
Application.Windows("test.xlsm").Visible = False
Else
Application.Visible = False
End If
End Sub
现在我的问题: 当我打开工作簿时,会显示用户窗体,但 Excel 和活动窗口也保持可见。但是,如果我单击工作表上的按钮,Excel 或窗口将按应有的方式隐藏。此外,加载所有内容后,Excel(而不是用户表单)具有焦点。
我第一次运行它时,它运行良好。我怀疑更改编辑器中的 ShowModal 设置会以某种方式搞砸,但这只是我的猜测。无论如何,无论现在的模态设置如何,它都不再按预期工作了。
如果我只是跑步
Application.Visible = False
除了“if”子句,Excel 仍然保持可见,当然活动窗口也是如此。
这让我发疯了。 我错过了什么?
编辑:链接到我的测试文件:Test File on my Dropbox 可能必须启动它两次,因为当宏在启动时被阻止并且仅在 excel 完全加载后才激活时,代码会按预期工作。
编辑:我能够在 excel 2010 电脑上对此进行测试,但问题不存在。因此,这可能与较新的 Office Apps 处理内容的方式有关。
【问题讨论】:
-
您还有其他工作簿,包括隐藏的工作簿吗?根据帮助,
Application.Windows包括隐藏窗口。 -
不,没有其他窗口。我从一个新的干净工作簿创建了这个测试文件。没有其他东西是开放的。
-
你确定没有个人工作簿?
-
我检查了 ...\AppData\Roaming\Microsoft\Excel\XLSTART 以确保。它和我的银行账户一样空。
-
哈,我会建议你雇人,但也许不会。尝试剥离所有内容并一次添加一点,然后您应该能够看到它何时损坏。因此,只需从 Workbook Open 代码开始,删除 If 并检查是否有效,等等