代码之家  ›  专栏  ›  技术社区  ›  Hofma Dresu

在Excel 2007中创建自删除宏

  •  2
  • Hofma Dresu  · 技术社区  · 12 年前

    我正试图在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
    
    1 回复  |  直到 12 年前
        1
  •  1
  •   Tim Williams    12 年前

    为什么不直接将宏移到另一个工作簿中,并让它们对您发送的工作簿进行操作?