【问题标题】:Word disappears on closing one document via macroWord 在通过宏关闭一个文档时消失
【发布时间】:2017-01-10 16:54:11
【问题描述】:

我希望这里有一个简单的解决方案,但不是程序员,我不知道解决方案应该是什么。

在 MS Word 中,我有一个可以提交、跳过或丢弃的 VBA 用户表单。目前的问题是“放弃”按钮。其目的是使用 'ThisDocument.Close' 完全退出表单,这样就不会错误地提交任何内容以供审核;但是,当用户单击此按钮以放弃用户窗体时,它似乎隐藏了所有其他可能打开的 Word 文档。 Word 从任务栏中消失。文档没有关闭,我知道这一点,因为当我重新打开 Word 时,它们仍然在“视图”>“切换窗口”的功能区下打开。

以下是我的代码:

Private Sub CancelBtn_Click()

Dim SureCancel As Integer

SureCancel = MsgBox("Are you sure you want to abandon this sheet? _
Changes will not be saved!", vbYesNo)

If SureCancel = vbYes Then
    ThisDocument.Close wdDoNotSaveChanges
End If

End Sub

我也尝试在End If 之后使用Application.Visible = True 无济于事。

非常感谢任何帮助/想法。

【问题讨论】:

  • 您正在关闭包含表单的文档,而表单仍处于打开状态。在关闭文档之前尝试隐藏表单。
  • 感谢您的想法。不幸的是,它没有用。不过我确实找到了解决方法...
  • 在关闭文档之前,我已将 Application.Visible = True 放入 If 中。现在我需要做的就是弄清楚只有在有其他东西打开时才能做到这一点。一旦我解决了这个问题,我会用答案更新它。

标签: vba ms-word


【解决方案1】:

我对我的代码做了一些小的补充,现在它完全符合我的要求。

Private Sub CancelBtn_Click()

Dim SureCancel As Integer

SureCancel = MsgBox("Are you sure you want to abandon this sheet? _
Changes will not be saved!", vbYesNo)

If SureCancel = vbYes Then
        If Documents.Count > 1 Then
            Application.Visible = True
        End If
    ThisDocument.Close wdDoNotSaveChanges
End If

End Sub

If Documents.Count > 1 子句检查 Word 中是否打开了其他任何内容,只有在打开的情况下,应用程序才会再次出现,否则退出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    相关资源
    最近更新 更多