VBA Excel如何使用MS Excel关闭中的“取消”按钮?
在关闭(取消为布尔值)之前,我在VBA Excel如何使用MS Excel关闭中的“取消”按钮?,excel,events,vba,messagebox,Excel,Events,Vba,Messagebox,在关闭(取消为布尔值)之前,我在专用子工作簿中运行宏 但每当用户单击取消按钮时,宏不应运行 我一直在遵循代码行 Private Sub Workbook_BeforeClose(Cancel As Boolean) If Cancel = True Then MsgBox "You clicked on Cancel" ElseIf Cancel = False Then Call SDA End If 结束Sub但每当我按下取消按钮时,它都不会显示任何消息框。任何帮助都将不
专用子工作簿中运行宏
但每当用户单击取消按钮时,宏不应运行
我一直在遵循代码行
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Cancel = True Then
MsgBox "You clicked on Cancel"
ElseIf Cancel = False Then
Call SDA
End If
结束Sub
但每当我按下取消按钮时,它都不会显示任何消息框。任何帮助都将不胜感激。请尝试以下操作:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Msg As String
Dim ireply As Integer
If Not Me.Saved Then
Msg = "Do you want to Save this book? "
ireply = MsgBox(Msg, vbQuestion + vbYesNoCancel)
Select Case ireply
Case vbYes
Me.Save
Call SDA
Case vbNo
Me.Saved = True
Case vbCancel
Cancel = True
MsgBox "Cancelling...workbook close event!"
Exit Sub
End Select
End If
End Sub
- 输出对话框:
messagebox取消事件包装的通常结构如下所示:
'--Display MessageBox
Dim intMsg as integer
intMsg = MsgBox(strPrompt, vbYesNo, strTitle)
'--Check pressed button
If iRet = vbNo Then
MsgBox "NO!"
Else
MsgBox "Yes!"
End If
请试试这个:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Msg As String
Dim ireply As Integer
If Not Me.Saved Then
Msg = "Do you want to Save this book? "
ireply = MsgBox(Msg, vbQuestion + vbYesNoCancel)
Select Case ireply
Case vbYes
Me.Save
Call SDA
Case vbNo
Me.Saved = True
Case vbCancel
Cancel = True
MsgBox "Cancelling...workbook close event!"
Exit Sub
End Select
End If
End Sub
- 输出对话框:
messagebox取消事件包装的通常结构如下所示:
'--Display MessageBox
Dim intMsg as integer
intMsg = MsgBox(strPrompt, vbYesNo, strTitle)
'--Check pressed button
If iRet = vbNo Then
MsgBox "NO!"
Else
MsgBox "Yes!"
End If
@Saikiran请看第一个。这简直是写得太多了
通常的事件前关闭@bonCondigo,你好,谢谢你的回复,但它对我不起作用。让我用另一种方式告诉你我的要求:我只想在用户点击取消按钮时显示MessageBox
@SaiKiranMandhala它似乎对我有效,当我单击“取消”按钮时。。让我更新屏幕……)@bonCodigo的第一个例子就是这么做的?在标准excel消息框中按“取消”按钮时,无法(或很容易)挂起。@bonCodigo,很抱歉,是我的宏再次触发对话框。现在没事了。它就像一个符咒。非常感谢:-)@Saikiran请看第一张。这简直是写得太多了通常的事件前关闭@bonCondigo,你好,谢谢你的回复,但它对我不起作用。让我用另一种方式告诉你我的要求:我只想在用户点击取消按钮时显示MessageBox
@SaiKiranMandhala它似乎对我有效,当我单击“取消”按钮时。。让我更新屏幕……)@bonCodigo的第一个例子就是这么做的?在标准excel消息框中按“取消”按钮时,无法(或很容易)挂起。@bonCodigo,很抱歉,是我的宏再次触发对话框。现在没事了。它就像一个符咒。非常感谢:-)参数Cancel
没有说明是否按下了天气取消。它可以让您的代码覆盖正在发生的关闭事件,将其设置为true将阻止excel关闭工作簿,将其单独设置或将其设置为false将允许关闭操作完成。@NickSlash,是否仍可以确定是否按下了取消?thaks for reply:-)参数Cancel
没有说明是否按下了天气取消。它可以让您的代码覆盖正在发生的关闭事件,将其设置为true将阻止excel关闭工作簿,将其单独设置或将其设置为false将允许关闭操作完成。@NickSlash,是否仍可以确定是否按下了取消?答:——)