如何使用VBA删除Module1?

我想在Excel的VBA编辑器中使用VBA命令删除Module1。 这可能吗?

这很复杂。 看到这个链接了解更多关于为什么。

总之这是你需要做的:

首先你需要参考VBIDE

VBIDE VBIDE是定义组成VBProject和Visual Basic编辑器的所有对象和值的对象库。 您必须引用此库才能使用VBA可扩展性对象。 要添加此引用,请打开VBA编辑器,在编辑器中打开VBProject,然后转到工具菜单。 在那里,select参考。 在引用对话框中向下滚动到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编辑器中),select“macros”,然后select“安全”项。 在该对话框中,单击“受信任的发布者”选项卡,然后选中“信任”访问“Visual Basic项目”设置。

在Excel 2007中,单击主function区上的开发人员项目,然后单击代码面板中的macros安全项目。 在该对话框中,select“macros设置”,然后选中“信任”对VBA项目对象模型的访问。


现在你可以添加代码来删除模块:

从项目中删除模块

此代码将从VBProject中删除Module1。 请注意,您不能删除任何工作表模块或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