Excel &引用;无法运行宏";使用宏关闭并重新打开工作簿后出错
因此,我编写了一段非常简单的代码,基本上可以撤消另一个宏所做的更改。另一个宏保存工作簿,然后将数据复制到另一个工作表并删除原始数据。我编写的“撤销”脚本只是关闭并重新打开工作簿而不保存它——我知道这不是傻瓜式的,但总比什么都没有好。它运行得非常好,可以执行我想要的操作-但是当它重新打开工作簿时,我会收到以下警告消息“无法运行宏“OpenMe”。该宏可能在此工作簿中不可用,或者所有宏都可能被禁用。重新打开后,我的所有宏仍然可以正常工作。以下是我为close和open宏编写的代码:Excel &引用;无法运行宏";使用宏关闭并重新打开工作簿后出错,excel,vba,Excel,Vba,因此,我编写了一段非常简单的代码,基本上可以撤消另一个宏所做的更改。另一个宏保存工作簿,然后将数据复制到另一个工作表并删除原始数据。我编写的“撤销”脚本只是关闭并重新打开工作簿而不保存它——我知道这不是傻瓜式的,但总比什么都没有好。它运行得非常好,可以执行我想要的操作-但是当它重新打开工作簿时,我会收到以下警告消息“无法运行宏“OpenMe”。该宏可能在此工作簿中不可用,或者所有宏都可能被禁用。重新打开后,我的所有宏仍然可以正常工作。以下是我为close和open宏编写的代码: Sub Yes_
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
我只希望这个愚蠢的警告不要突然出现!感谢您的建议:)您需要重新打开工作簿,否则您将无法运行任何代码:
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
您需要重新打开工作簿,否则将无法运行任何代码:
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
我找到了解决方案-我必须将OpenMe()的代码移动到一个单独的模块,然后它在没有弹出警告的情况下工作:)我找到了解决方案-我必须将OpenMe()的代码移动到一个单独的模块,然后它在没有弹出警告的情况下工作:)它已经重新打开了吗?我已经测试过了,它确实关闭并重新打开了以前保存的文件。。。我的意思是,我自己也很困惑,但它对我来说就是这样,每次我运行宏来关闭和重新打开工作簿时,我都会使用此代码。我尝试了您的方法-仍然收到相同的警告,说它无法运行宏:/n您的工作簿上出现了一些问题,我确实将代码放在了工作簿上,删除了一张工作表,运行
Yes\u单击
,工作簿重新打开,工作表仍然在那里,并显示“Changes Undone”(更改撤消)消息。您知道会是什么吗?因为这是我遇到的第一个问题-我不明白为什么它可以访问所有其他宏,但不能访问OpenMe()宏,尽管它已经重新打开了?我已经测试过了,它确实关闭并重新打开了以前保存的文件。。。我的意思是,我自己也很困惑,但它对我来说就是这样,每次我运行宏来关闭和重新打开工作簿时,我都会使用此代码。我尝试了您的方法-仍然收到相同的警告,说它无法运行宏:/n您的工作簿上出现了一些问题,我确实将代码放在了工作簿上,删除了一张工作表,运行Yes\u单击
,工作簿重新打开,工作表仍然在那里,并显示“Changes Undone”(更改撤消)消息。您知道会是什么吗?因为这是我遇到的第一个问题-我不明白为什么它可以访问所有其他宏,但不能访问OpenMe()宏