使用VBA从工作表中删除VBA代码

时间:2013-11-26 16:48:26

标签: excel vba excel-vba

我想通过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解决方法)

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

在这种情况下,必须编写一个例外来解决这个问题。

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