VBA 代码操作代码dadaV20190409'VBE 对象是根对象,表示在 VBA 编辑器中存在的所有对象的最上层对象,常用对象如下:'1、VBAproject 对象:VBE 编辑器中的工程'2、VBComponents 对象:表示工程中所有的部件集合,包括 Excel 对象、窗体、模块、类模块。'3、CodeModule 对象:表示部件中相关的代码'操作 VBE 需要做的工作'1 设置信任'excel2003 中,工具--宏--安全性--可靠发行商,选中信任对于…’'excel2007 和 excel2010,开发工具--安全性--宏设置--选中'对…的信任’'2 引用OptionExplicit'一、返回模块的行数Sub 返回模块 A 中的总行数()MsgBoxThisWorkbook.VBProject.VBComponents('A').CodeModule.CountOfLinesEndSubSub 返回过程 test 中的总行数()MsgBoxThisWorkbook.VBProject.VBComponents('A').CodeModule.ProcCountLines('test',vbext_pk_Proc)EndSubSub 返回过程 fe 中开始行数()MsgBoxThisWorkbook.VBProject.VBComponents('A').CodeModule.ProcBodyLine('fe',vbext_pk_Proc)EndSub'vbext_pk_Get 指定一个返回属性值的过程'vbext_pk_Let 指定一个赋值给属性的过程'vbext_pk_Set 指定一个给对象设置引用的过程'vbext_pk_Proc 指定所有过程除了 Property 过程'二、返回模块的内容Sub 返回过程 fe 中的所有代码()Dim 开始行数,总行数WithThisWorkbook.VBProject.VBComponents('A').CodeModule 开始行数=.ProcBodyLine('fe',vbext_pk_Proc)总行数=.ProcCountLines('fe',vbext_pk_Proc)MsgBox.Lines(开始行数,总行数)EndWithEndSubSub 返回第 7 行所在的过程名()MsgBoxThisWorkbook.VBProject.VBComponents('A').CodeModule.ProcOfLine(7,vbext_pk_Proc)EndSub'判断模块和过程是否存在Sub 判断 A 模块是否存在()OnErrorResumeNextIfThisWorkbook.VBProject.VBComponents('c')IsNothingThenMsgBox'B 模块没有存在’ElseMsgBox'B 模块存在'EndIfEndSubSub 判断是否存在 b 过程()'OnErrorResumeNextDim 开始行数开始行数ThisWorkbook.VBProject.VBComponents('A').CodeModule.ProcBodyLine('B',vbext_pk_Proc)IfErr.Number=35ThenMsgBox'不存在 B 过程'ElseMsgBox'存在 B 过程'EndIfEndSub'返回工程中所有部件名称Sub 显示部件列表()DimxAsByteWithThisWorkbook.VBProjectForx=1To.VBComponents.CountCells(x+1,1)=.VBComponents(x).NameCells(x+1,2)=.VBComponents(x).TypeNextxEn...