所以我写了一些非常简单的代码,这些代码实际上撤消了另一个宏所做的更改。另一个宏保存工作簿,然后将数据复制到另一个工作表并删除原始数据。我编写的“撤消”脚本只是在不保存的情况下关闭并重新打开了工作簿-我知道这不是万无一失的方法,但是总比没有好。它运行得很好,并且可以执行我想要的操作-但是,当它重新打开工作簿时,我收到以下警告消息:“无法运行宏'OpenMe'。此工作簿中的宏可能不可用,或者可能禁用了所有宏。”重新打开后,我的所有宏仍然可以正常工作。这是我关闭和打开宏的代码:
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
我要的是不要弹出这个愚蠢的警告!任何建议表示赞赏:)
答案 0 :(得分:0)
您需要重新打开工作簿,否则将没有任何代码可以运行:
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
答案 1 :(得分:0)
我找到了解决方案-我不得不将OpenMe()的代码移动到一个单独的模块,然后所有这些都工作而没有弹出警告:)