总结
添加新模块到 Excel VBA 项目中是一个简单的过程,可以通过 VBA 编辑器的菜单或快捷菜单来完成。模块是组织 VBA 代码的有效方式,可以包含声明、子过程、和函数过程。合理组织模块是编写高效、可维护 VBA 代码的关键。
代码书写一共是以下几个步骤:
- 定义子过程(第一行)
- 声明变量(Dim语句)
- 为变量赋值(Msg和Ans)
- 连接两个字符串(用&操作符)
- 使用内置的VBA函数(MsgBox)
- 使用内置的VBA常量(vbYesNo、vbNo和vbYes)
- 使用If-Then结构(两次)结束子过程(最后一行)
0.8. 添加新的 VBA 模块
当开始录制宏时,Excel 会根据选择的宏存储位置自动创建一个新的模块。如果选择将宏保存在“个人宏工作簿”中,那么模块将被添加到这个隐藏的工作簿中。如果选择将宏保存在当前工作簿,那么模块将被添加到当前工作簿的 VBA 项目中。
手动添加新模块的步骤如下:
- 打开 VBA 编辑器 (
Alt
+F11
)。 - 在“工程资源管理器”窗口中,选择想要添加模块的工作簿的名称。
- 在菜单栏中选择“插入(Insert)” > “模块(Module)”。
- 或者,可以右击工作簿的名称,在弹出的快捷菜单中选择“插入(Insert)” > “模块(Module)”。
新添加的模块将出现在“工程资源管理器”窗口中的“模块(Modules)”文件夹下,这时可以开始在其中编写或粘贴 VBA 代码。
0.9. VBA 模块中的基本语法
- 声明(Declarations): 在模块的顶部,通常用于声明全局变量或常量,这些变量或常量在整个模块中都可以访问。声明还可以包括编译指令,如
Option Explicit
,它要求所有变量在使用前必须显式声明。
Dim count As Integer
这里 count
是变量名,Integer
是数据类型,表示 count
可以存储整数。
-
子过程(Sub Procedures): 是执行一系列操作的代码块,以
Sub
关键字开始,以End Sub
结束。录制的宏以及自己编写的过程通常都是子过程。它们可以被用户调用,但不返回任何值。 -
函数过程(Function Procedures): 是返回单个值的代码块,以
Function
关键字开始,以End Function
结束。它们可以在其他 VBA 代码中被调用,也可以像工作表函数一样在 Excel 单元格中使用。
0.10. 变量范围和数据类型
0.10.1 变量范围
- 局部变量: 在过程(如 Sub 或 Function)内部声明的变量,只在该过程内有效。
- 模块级变量: 在过程外部但在模块内部使用
Dim
或Private
关键字声明的变量,对该模块内的所有过程都是可见的。 - 全局变量: 使用
Global
或Public
关键字在模块的顶层(所有过程外部)声明的变量,对整个项目都是可见的。
0.10.2 数据类型
变量可以有不同的数据类型,比如 Integer
, String
, Double
, Boolean
等:
Integer
: 一个存储整数的数据类型,可以存储的范围通常是 -32,768 到 32,767。Long
: 类似于Integer
,但范围更大,从 -2,147,483,648 到 2,147,483,647。Single
: 单精度浮点数据类型,用于存储较大范围的数值,具有7位精度。Double
: 双精度浮点数据类型,范