【发布时间】: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