是否可以使用VBA从Excel文件中删除所有VBA模块?
如果存在模块,则在运行此脚本之前未知其名称。
显然,你可以。下面的代码可以完成任务:
Sub compact_code()
On Error Resume Next
Dim Element As Object
For Each Element In ActiveWorkbook.VBProject.VBComponents
ActiveWorkbook.VBProject.VBComponents.Remove Element
Next
End Sub
这将删除所有模块,包括ClassModules和UserForms,但保留所有对象模块(工作表、工作簿)。
On Error Resume Next
With wbk.VBProject
For x = .VBComponents.Count To 1 Step -1
If .VBComponents(x).Type = vbext_ct_StdModule Then
.VBComponents.Remove .VBComponents(x)
End If
Next x
End With
On Error GoTo 0
ActiveWorkbook
的引用更改为ThisWorkbook
,或者如果我要更改另一个工作簿的代码,则使用特定的工作簿引用。 - pableteThisWorkbook
将会指向模板本身,而不是项目本身。有时候这可能会很棘手。 - Mafii