如何撤消通过VBA执行的操作

时间:2014-04-22 12:22:17

标签: vba excel-vba excel

我写了一些简单的VBA代码,当按下按钮时,它只删除工作表中的三列。

按下按钮时,将删除列。这部分工作正常。我想要做的是通过Excel中的STOCK撤消按钮使此操作可以反转。目前,删除这些行不能通过任何方式(我所知)撤消,这意味着如果按下事故按钮,则必须退出并重新打开该表。

这是我目前的代码,请随时批评它,虽然我正在学习,但我对VBA最佳实践并不十分熟悉。

Private Sub CommandButton1_Click()
Dim Alias_Adds As Worksheet
Set Alias_Adds = Sheets("Alias_Adds")

MSG1 = MsgBox("Are you ready to delete the validation columns? (A, F, and G?)", vbYesNo, "")

If MSG1 = vbYes Then
With Alias_Adds
        Alias_Adds.Columns("A").EntireColumn.Delete 'this is the line that is cauing the error
        Alias_Adds.Columns("E:F").EntireColumn.Delete
    End With
Else
  MsgBox "Ok, let's wait a bit to delete those columns"
End If

End Sub

1 个答案:

答案 0 :(得分:0)

由于Excel VBA不支持其自身操作的通用撤消,因此您必须在您的逻辑中构建安全功能。

首先将它们复制到未使用的位置,而不是简单地删除列。然后可以在以后检索数据。