使用宏关闭并重新打开工作簿后,出现“无法运行宏”错误

时间:2019-06-11 11:47:40

标签: excel vba

所以我写了一些非常简单的代码,这些代码实际上撤消了另一个宏所做的更改。另一个宏保存工作簿,然后将数据复制到另一个工作表并删除原始数据。我编写的“撤消”脚本只是在不保存的情况下关闭并重新打开了工作簿-我知道这不是万无一失的方法,但是总比没有好。它运行得很好,并且可以执行我想要的操作-但是,当它重新打开工作簿时,我收到以下警告消息:“无法运行宏'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

我要的是不要弹出这个愚蠢的警告!任何建议表示赞赏:)

2 个答案:

答案 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()的代码移动到一个单独的模块,然后所有这些都工作而没有弹出警告:)