excel - VBA Excel-如何使用 MS Excel 关闭中的取消按钮?

标签 excel events vba messagebox

我在 Private Sub Workbook_BeforeClose(Cancel As Boolean) 中运行宏
但每当用户点击取消 按钮宏不应运行。

我一直遵循代码行

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Cancel = True Then
    MsgBox "You clicked on Cancel"
ElseIf Cancel = False Then
    Call SDA
End If

End SubBut 每当我按 取消 按钮它没有向我显示任何 MessageBox。任何帮助将不胜感激。 enter image description here

最佳答案

请试试这个:

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
  • 输出对话框:

  • enter image description here

    消息框取消事件包装的通常结构如下:
    '--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
    

    关于excel - VBA Excel-如何使用 MS Excel 关闭中的取消按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14398652/

    相关文章:

    css - 将元素上具有多个 Css 类的 HTML 文件导入到 Excel 中时出现问题

    excel - 使用 VBA 解析和扩展具有变量的代数方程

    javascript - 如何使用事件冒泡取消

    excel - 如何在 VBA (Excel 2010) 中将默认情况恢复为变量?

    r - 如何在本地硬盘上将 Shiny 的 react 性数据框作为 csv 存储并附加新条目

    c# - 新的 COM 端口可用事件

    arrays - 排序程序不起作用

    c# - 从 C# dll 使用 ADODB 连接到 SQL 服务器

    string - 如何从字符串中查找数字?

    c# - 如何使用 C# 在 Excel 中获取用户选定范围内的特定单元格