所以我写了一个非常简单的代码,基本上可以撤消由另一个宏所做的更改。另一个宏保存工作簿,然后将数据复制到另一个工作表并删除原始数据。我编写的“撤销”脚本只是简单地关闭并重新打开工作簿,而不保存它-我知道这不是愚蠢的证明,但它总比什么都没有强。它运行得很好,可以做我想做的事情--但当它重新打开工作簿时,我收到以下警告消息:“无法运行宏'OpenMe‘。宏可能在此工作簿中不可用,或者所有宏都可能被禁用。”在重新打开之后,我的所有宏仍然可以正常工作。下面是我为close和open宏准备的代码:
Sub Yes_Click()
Application.OnTime Now + TimeValue("00:00:01"), "OpenMe"
ThisWorkbook.Close SaveChanges:=False
End Sub
Sub OpenMe()
MsgBox "Changes Undone"
End Sub
Sub No_Click()
Undo.Hide
End Sub
我想要的就是这个愚蠢的警告不会出现!如有任何建议,欢迎使用:)
发布于 2019-06-11 11:51:03
您需要重新打开工作簿,否则将无法运行任何代码:
Sub Yes_Click()
Application.OnTime Now + TimeValue("00:00:01"), "OpenMe"
ThisWorkbook.Close SaveChanges:=False
End Sub
Sub OpenMe()
Dim wb As Excel.Workbook
Set wb = ThisWorkbook
Dim pth As String
pth = wb.FullName
Application.Workbooks.Open pth
MsgBox "Changes Undone"
End Sub
Sub No_Click()
Undo.Hide
End Sub
发布于 2019-06-11 12:28:08
我找到了解决方案-我必须将OpenMe()的代码移到一个单独的模块中,然后一切都可以正常工作,而不会弹出一个警告:)
https://stackoverflow.com/questions/56543002
复制