如何使用VBA删除Module1?

 川大蛋炒饭-_246 发布于 2023-02-13 09:49

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

1 个回答
  • 情况很复杂.请参阅此链接以了解有关原因的更多信息

    简而言之,这就是你需要做的:

    首先,您需要参考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
    

    2023-02-13 09:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有