gpt4 book ai didi

vba - 在关闭工作簿时提示宏,但如果用户按 "No"则终止关闭

转载 作者:行者123 更新时间:2023-12-02 15:16:11 26 4
gpt4 key购买 nike

我正在尝试在工作簿关闭时执行宏。

宏工作正常,但问题在于关闭函数。我希望在关闭工作簿时提示用户说"is"或“否”。如果用户按"is",工作簿应另存为 xlsm 并关闭。

如果用户按“否”,则应执行宏,以便将用户发送到工作表“Projektinformation”并且不应关闭工作簿。

这是我的代码,有什么想法吗?

Sub Auto_Close()
Dim OutPut As Integer
OutPut = MsgBox("Projektinformation ifylld?", vbYesNo, "Projektinformation.")
If OutPut = 6 Then
'Output = 6(Yes)
ThisWorkbook.SaveAs FileFormat:=xlOpenXMLWorkbookMacroEnabled
Else
'Output = 7(No)
Sheets("Projektinformation").Select
End If
End Sub

最佳答案

根据您的评论,我推断您的代码在 Workbook_BeforeClose 端看起来像这样:

Private Sub Workbook_BeforeClose(Cancel as Boolean)
Call Auto_Close()
End Sub

问题是代码完全按照您的要求执行!它运行您的 Auto_Close 子例程(在工作簿关闭之前),然后继续关闭工作簿!

为了实现您想要实现的目标,您必须将传递到 Workbook_BeforeClose 子项的 Cancel 参数更改为 True。当Cancel = True时,工作簿将取消关闭事件,否则它将照常继续。我可以通过引用将 Cancel 传递到您的 sub 中,并根据用户点击的内容更改标志,或者使 Auto_Close() 成为一个返回 bool 值的函数,指示是否继续关闭工作簿。

示例

Private Sub Workbook_BeforeClose(Cancel as Boolean)
If SomeCondition = True Then
Cancel = True '<-- Workbook will stay open
Else
Cancel = False '<-- Workbook will close as usual
End If
End Sub

关于vba - 在关闭工作簿时提示宏,但如果用户按 "No"则终止关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35775464/

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