【问题标题】:How do I delete VBA code from a sheet using VBA?如何使用 VBA 从工作表中删除 VBA 代码?
【发布时间】:2013-11-26 16:48:25
【问题描述】:

我想通过 VBA 删除工作表中包含的 VBA 代码。目前,我有一个将工作表复制到新工作簿并从中删除所有图像的代码。但是,这些图像被设置为在代码中的 Worksheet_Activate 上执行操作,然后每当我轻弹到那里没有图像的工作表时都会导致错误。

我知道我可以使用以下方式摆脱模块等:

 With ActiveWorkbook.VBProject 
        For x = .VBComponents.Count To 1 Step -1 
            .VBComponents.Remove .VBComponents(x) 
        Next x 
        For x = .VBComponents.Count To 1 Step -1 
            .VBComponents(x).CodeModule.DeleteLines _ 
            1, .VBComponents(x).CodeModule.CountOfLines 
        Next x 
    End With

但这不会从工作表(或工作簿中删除)。知道这是否也可能很有趣。

代码本身需要对 Excel 2003 到 2013 版本有效(因此不能使用另存为 xlsx 解决方法)。

【问题讨论】:

  • 为什么不将文件保存为 xlsx 文件?该代码将被自动删除。另外,如果我没记错的话,我之前可能已经回答了类似的问题
  • 在轻弹之前,您可能需要执行Application.EnableEvents = False 以暂时禁用事件并执行您需要执行的操作。你现在要采用的方法应该是你最后的资源了..
  • @SiddharthRout 这个?:Delete own code in vba :)
  • lol@nixda: 那一个,还有另一个……但这很快:P

标签: vba excel


【解决方案1】:

发现问题。我的代码工作正常,只是我正在测试它的计算机不允许访问 VBA 项目对象模型(并且在代码的前面使用 On Error Resume Next 运行它)

在这种情况下必须写一个异常来解决这个问题。

感谢 @mehow @nixda @SiddharthRout 和 @DaveU 的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-18
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多