我正在尝试在 Excel 2007 中创建一个宏,该宏将在完成运行并关闭 Excel 时自行删除。我想这样做的原因是我要将工作簿发送给其他人,我不希望他们看到有关宏的安全警告。将生成此工作簿的多个版本,因此我不想手动运行并删除每个版本的宏。
我试过下面的代码。它运行没有错误,但实际上并没有删除宏。如果我删除“ActiveWorkbook.Close SaveChanges:=True”行,宏将被删除,但这会提示用户在 Excel 关闭时保存工作簿。有没有办法在没有用户交互的情况下做到这一点?
Dim ActiveComponent
Set ActiveComponent = ActiveWorkbook.VBProject.VBComponents("ModuleName")
ActiveWorkbook.VBProject.VBComponents.Remove (ActiveComponent)
ActiveWorkbook.Save
Application.Quit
ActiveWorkbook.Close SaveChanges:=True