我想在Excel的VBA编辑器中使用VBA命令删除Module1.这可能吗?
情况很复杂.请参阅此链接以了解有关原因的更多信息
简而言之,这就是你需要做的:
首先,您需要参考VBIDE
VBIDE VBIDE是对象库,它定义构成VBProject和Visual Basic编辑器的所有对象和值.您必须引用此库才能使用VBA Extensibility对象.要添加此引用,请打开VBA编辑器,在编辑器中打开VBProject,然后转到"工具"菜单.在那里,选择参考.在"引用"对话框中,向下滚动到"Microsoft Visual Basic for Applications Extensibility 5.3"并检查列表中的该项.您可以使用以下代码以编程方式添加引用:
ThisWorkbook.VBProject.References.AddFromGuid _ GUID:="{0002E157-0000-0000-C000-000000000046}", _ Major:=5, Minor:=3
接下来,您需要授予"对Visual Basic项目的信任访问权限"
接下来,您需要启用对VBA项目的编程访问.在Excel 2003及更早版本中,转到"工具"菜单(在Excel中,而不是在VBA编辑器中),选择"宏",然后选择"安全"项.在该对话框中,单击"受信任的发布者"选项卡,然后选中"信任对Visual Basic项目的访问权限"设置.
在Excel 2007中,单击主功能区上的"开发人员"项,然后单击"代码"面板中的"宏安全性"项.在该对话框中,选择"宏设置"并选中"对VBA项目对象模型的信任访问".
现在您可以添加代码来删除模块:
从项目中删除模块
此代码将从VBProject中删除Module1.请注意,您无法删除任何Sheet模块或ThisWorkbook模块.通常,您无法删除Type为vbext_ct_Document的模块.
Sub DeleteModule() Dim VBProj As VBIDE.VBProject Dim VBComp As VBIDE.VBComponent Set VBProj = ActiveWorkbook.VBProject Set VBComp = VBProj.VBComponents("Module1") VBProj.VBComponents.Remove VBComp End Sub