怎样用 excel vba 删除 其他工作簿中的 模块

如题所述

1.点按快速启动栏excel 程序图标 进入excel 界面 点击选中任意单元格 然后按alt+f11 进入vbe界面。

2.点击菜单栏 插入命令 在弹出的活动菜单中点按模块命令。

3.另一种方式插入模块的方法可以在工程资管管理器中鼠标点击空白处 右键单击鼠标 在弹出的快捷菜单中选择插入命令 二级菜单中选择模块命令。

4.如图所示模块1、模块2分别是通过菜单栏插入命令 和工程资源管理器点击右键创建的模块。

5.如果要删除工程资源管理器中多余的模块2或模块1 首选在工程资源管理器中鼠标左键点击要删除的模块 然后点击菜单栏 文件命令 在弹出的活动菜单中点移除模块2或模块1。

6.或者用另一种方法删除模块 在工程资源管理器中鼠标右键单击要删除的模块 在弹出的的快捷菜单中选择移除模块命令 删除了模块同时也将删除保存在模块中的所用代码程序。

7.模块的作用是存储过程 要为模块添加过程需要首先双击工程资源管理器相应模块 此时界面最上方显示该模块。

8.在菜单栏上点按插入命令 在弹出菜单中点过程 在弹出的对话框中为过程起一个名字 点按确定。

9.这是点按确定后显示在代码窗口的空过程代码 这个代码也可以通过手动输入。

10.将一下代码写入刚才插入的空过程代码中两行之间 然后点按菜单栏 运行命令 运行子过程/用户窗体 或者按F5快捷键 此时界面跳转到excel界面显示如下提示框。

11.如果对代码中某个位置不了解可以鼠标点击拖动选中该位置 然后按f1将会弹出帮助信息。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-10-31
前提是要确定有关工作簿中的工程名称
——例如,要删除其他工作簿中的模块,意味着保留当前工程的模块,这时,可先为当前工程作特定的命名Application.VBE.ActiveVBProject.Name = "我的工程"
然后用for each 循环在“工程”对象集合VBProjects中逐个选择对象,用if语句排除"我的工程",再用for each循环在每个对象的“工程部件”集合VBComponents中逐个选择部件,用if语句和instr函数,按要删除的模块名称,选择目标部件,用Remove方法删除之。
警告:为避免不良后果,作此类删除处理前,一定要事先备份所有文档,否则后果自负!
理由1:不少文档工程部件(包括模块、表单)都会重名,上述方法可能将同名对象通通删除;
理由2:为当前工程命名可能导致当前工程因名称引用错误而受损。
VBA举例:
'删除当前工程以外其他工程中名称包含“模块”字样的工程部件
Application.VBE.ActiveVBProject.Name = "我的工程"
For Each a In Application.VBE.VBProjects
If a.Name <> "我的工程" Then
For Each b In a.VBComponents
If InStr(b.Name, "模块") > 0 Then
'MsgBox b.Name
a.VBComponents.Remove (b)
End If
Next b
End If
Next a本回答被提问者采纳
第2个回答  2012-02-10
Sheets("Sheet2").Select
ActiveWindow.SelectedSheets.Delete
相似回答