gpt4 book ai didi

vba - 防止 Word VBA 中的 Excel 提示

转载 作者:行者123 更新时间:2023-12-04 22:02:02 25 4
gpt4 key购买 nike

我在 Word 和 Excel 上使用 VBA。我让 Word 运行一个用户表单,它会自动打开一个 Excel 文件。用户应在 Excel 文件中填写一些数据,然后返回 Word 用户表单。当用户填写完 Word 用户表单中的所有字段后,它将在 Word 上运行一些 VBA 代码,将数据从 Excel 复制到 Word。完成后,Excel 文件将自动关闭。因此,我需要防止用户手动关闭 Excel 应用程序。

为此,我在 Sub Workbook_BeforeClose 的 Excel VBA 中使用这些代码。 .如果用户关闭 Excel 应用程序窗口,它将显示一个消息框,询问用户是否仍在使用 Word 用户窗体。代码如下:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

answer = MsgBox("Are you still working with Word userform?", vbYesNo)
If answer = vbYes Then
Cancel = True
MsgBox "This workbook should not be closed. It will be automatically closed when you finish working with Ms. Word Template Userform."
Else
Application.ThisWorkbook.Saved = True
End If
End Sub

在 Word VBA 中,我有关闭 Excel 文件的代码:
Sub closeExcelApp()

If Not excelApp Is Nothing Then
excelApp.DisplayAlerts = False
excelWb.Close savechanges:=False
Set excelWb = Nothing
excelApp.Quit
End If
Set excelApp = Nothing

End Sub

当 Word VBA 代码完成将数据从 Excel 复制到 Word 时,将调用此 Sub。但是,调用此 Sub 将导致 Workbook_BeforeClose叫。同时,我不想要 Workbook_BeforeClose当我调用它时调用 closeExcelApp来自 Word VBA 的子程序。

有什么建议吗?

最佳答案

您可以禁用事件:

Sub closeExcelApp()

If Not excelApp Is Nothing Then
excelApp.DisplayAlerts = False
excelApp.EnableEvents = False
excelWb.Close savechanges:=False
Set excelWb = Nothing
excelApp.Quit
End If
Set excelApp = Nothing

End Sub

关于vba - 防止 Word VBA 中的 Excel 提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32692588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com