VBA代码操作代码

  • 格式:docx
  • 大小:17.11 KB
  • 文档页数:7

下载文档原格式

  / 14
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VBA代码操作代码

dadaV20190409

'VBE对象是根对象,表示在VBA编辑器中存在的所有对象的最上层对象,常用对象如下:

'1、VBAproject对象:VBE编辑器中的工程

'2、VBComponents对象:表示工程中所有的部件集合,包括Excel对象、窗体、模块、类模块。

'3、CodeModule对象:表示部件中相关的代码

'操作VBE需要做的工作

'1设置信任

'excel2003中,工具--宏--安全性--可靠发行商,选中“信任对于...'

'excel2007和excel2010,开发工具--安全性--宏设置--选中'对...的信任'

'2引用

Option Explicit

'一、返回模块的行数

Sub 返回模块A中的总行数()

MsgBox ThisWorkbook.VBProject.VBComponents('A').CodeModule.CountOfLines End Sub

Sub 返回过程test中的总行数()

MsgBox

ThisWorkbook.VBProject.VBComponents('A').CodeModule.ProcCountLines('test',

vbext_pk_Proc)

End Sub

Sub 返回过程fe中开始行数()

MsgBox

ThisWorkbook.VBProject.VBComponents('A').CodeModule.ProcBodyLine('fe', vbext_pk_Proc)

End Sub

'vbext_pk_Get 指定一个返回属性值的过程

'vbext_pk_Let 指定一个赋值给属性的过程

'vbext_pk_Set 指定一个给对象设置引用的过程

'vbext_pk_Proc 指定所有过程除了Property 过程

'二、返回模块的内容

Sub 返回过程fe中的所有代码()

Dim 开始行数, 总行数

With ThisWorkbook.VBProject.VBComponents('A').CodeModule 开始行数= .ProcBodyLine('fe', vbext_pk_Proc)

总行数= .ProcCountLines('fe', vbext_pk_Proc)

MsgBox .Lines(开始行数, 总行数)

End With

End Sub

Sub 返回第7行所在的过程名()

MsgBox

ThisWorkbook.VBProject.VBComponents('A').CodeModule.ProcOfLine(7, vbext_pk_Proc)

End Sub

'判断模块和过程是否存在

Sub 判断A模块是否存在()

On Error Resume Next

If ThisWorkbook.VBProject.VBComponents('c') Is Nothing Then MsgBox 'B模块没有存在'

Else

MsgBox 'B模块存在'

End If

End Sub

Sub 判断是否存在b过程()

'On Error Resume Next

Dim 开始行数

开始行数= ThisWorkbook.VBProject.VBComponents('A').CodeModule.ProcBodyLine('B',

vbext_pk_Proc)

If Err.Number = 35 Then

MsgBox '不存在B过程'

Else

MsgBox '存在B过程'

End If

End Sub

'返回工程中所有部件名称

Sub 显示部件列表()

Dim x As Byte

With ThisWorkbook.VBProject

For x = 1 To .VBComponents.Count

Cells(x + 1, 1) = .VBComponents(x).Name

Cells(x + 1, 2) = .VBComponents(x).Type

Next x

End With

End Sub

Option Explicit

'三、添加模块、过程、代码

'1 添加模块

Sub 添加新模块B()

With ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule)

.Name = 'B'

End With

End Sub

' vbext_ct_ClassModule 将一个类模块添加到集合

' vbext_ct_MSForm 将窗体添加到集合

' vbext_ct_StdModule 将标准模块添加到集合

'2 在模块中添加代码

Sub 添加新过程()

Dim sr, code

sr = 'Sub ABC()' & vbCrLf & 'Msgbox ''测试添加代码''' & vbCrLf & 'End Sub' 'MsgBox sr

With ThisWorkbook.VBProject.VBComponents('B').CodeModule

.AddFromString sr

End With

End Sub

'3 在模块中插入代码

Sub 在B模块中的第3行插入一行代码()

With ThisWorkbook.VBProject.VBComponents('B').CodeModule

.InsertLines 3, 'sheets(1).Select'

End With

End Sub

'四、删除模块、过程、代码

'1 删除模块

Sub 删除B模块()

With ThisWorkbook.VBProject.VBComponents

.Remove ThisWorkbook.VBProject.VBComponents('B')

End With

End Sub

'2 删除过程

相关主题