首页 > 解决方案 > 如何让 VBA 取消脚本?

问题描述

如果按下取消按钮,如何取消 VBA 代码。我有...

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim ws As Worksheet
Set ws = Sheets("EDITS")
Dim tbl As ListObject
Set tbl = ws.ListObjects("Table1")
Dim newrow As ListRow
Set newrow = tbl.ListRows.Add

SavePrompt.Show

With newrow
    .Range(1) = Now
    .Range(2) = SavePrompt.TextBox1.Text
End With

End Sub

并添加...

Private Sub CommandButton1_Click()

SavePrompt.Hide

End Sub

和,

Private Sub CommandButton2_Click()

Cancel = True

End Sub

到工作簿项目宏部分。

但由于某种原因,我不确定如何让代码取消,因为用户意识到他们不想保存他们出于某种原因对工作簿所做的更改。此 SavePrompt 有助于诊断更改的内容和时间。

标签: excelvbauserformcancellationbefore-save

解决方案


我认为你的意思是当用户按下取消按钮时,你想清理行列表。如果是这样,只需像下面的简单代码一样。

Private Sub ListObject_Delete()
    Dim List1 As Microsoft.Office.Tools.Excel.ListObject = _
        Me.Controls.AddListObject(Me.Range("A1", "D4"), "List1")

    If DialogResult.Yes = MessageBox.Show("Delete the ListObject?", _
        "Test", MessageBoxButtons.YesNo) Then
        List1.Delete()
    End If

End Sub

推荐阅读