VBA基础入门
VBA基础
认识VBA
注释
VBA 中的注释以英文单引号 (‘) 开头,后面接注释的内容。从单引号开始的部分不会被执行。
'我是一行注释
变量
变量是存储数据的一种表达方式。在程序开始,可以声明一个变量,指定变量的类型(数字、文本、逻辑值等),并给变量赋值。
在程序其他地方,就可以用该变量,使其存储的值参与运算。
'声明一个文本类型的变量
Dim s As String
'给 s 变量赋值,即 "Hello World"
s = "Hello World"
'在 A1 单元格写入 s 变量存储的数据
Range("A1").Value = s
常用 Excel 对象
Application 对象,表示 Excel 应用程序。
Workbook 对象,表示工作簿对象。
Worksheet 对象,表示工作表对象
Range 对象,表示单元格区域对象。
代码组命令
开发工具选项卡共包含三组命令,其中代码组的命令是使用最频繁的一组命令。加载项组和控件组的命令使用的较少。
今天先简单说一下代码组命令的功能。
- Visual Basic:打开 VBA 编辑器,快捷键是 Alt + F11。
- 宏:打开宏列表,并且可以对列表中的宏进行编辑,例如运行、修改、删除等。
- 录制宏:将键盘和鼠标操作,自动转换成 VBA 代码。这个功能在实际的开发过程中非常有用。
- 使用相对引用:录制宏时的设置选项。
- 宏安全性:设置 Excel 如何对待包含 VBA 代码的工作簿。因为存在一些恶意的代码,所以一般将宏安全性设置为禁用。
编辑器模块
编辑器中每个模块的基本用法如下:
- 工具栏:编辑器命令栏,与 Excel 功能区域类似,包含 Excel VBA 开发相关的命令。
- VBA 工程:显示当前 VBA 工程包含的所有对象。通常,一个工作簿就是一个 VBA 工程,其中包括 Excel 对象、工作表对象、模块等。
- 属性窗口:查看和设置选中对象的属性的窗口。
- 代码编辑窗口:实际编写代码的位置。编写、修改、保存代码,都在这里进行。
- 立即窗口:代码运行过程中,打印出的内容,在立即窗口中显示。一般用于调试代码。
基础操作
编辑器格式
选择【工具】–【选项】–【编辑器格式】
模块、函数插入与导出
VBA可以通过工具栏或者鼠标右键插入/删除模块,导入/导出模块;VBA 模块导出的文件类型是【.bas】类型文件,可以使用记事本、代码编辑器等文本编辑器打开并修改。
插入过程可以通过工具栏,这时会弹出属性设置窗口,其中输入过程名,指定作用域(私有或共有)。其中私有指的是,插入的过程只能在当前模块内使用;共有指的是在工程内其他模块内也能被使用。也可以直接输入过程或函数的相关信息,输入完过程或函数的范围和名称后回车,VBA 编辑器自动将结束语句写好。
代码运行
- 工具栏选择「运行」→「运行子过程/用户窗体」命令;
- 将光标放置在要运行的代码的任意一处,再点击快捷工具栏「▶ 」按钮;
- 将光标放置在要运行的代码的任意一处,再使用快捷键 F5,即可运行代码。
编写你的第一个 VBA 宏
选中左侧工程列表中的工作簿,后右键,在弹出的选项列表中,选择「插入」。二级菜单中,选择「模块」,完成插入新模块。
下图位置可以修改模块名:
在模块中输入代码,运行。
Sub MyCode()
MsgBox "Hello World"
End Sub
结果:
Excel录制宏并查看宏代码
点击「开发工具→录制宏」按钮。
进行需要录制内容的操作,比如:将B1单元格的背景改为浅绿色。点击结束录制按钮,点击开始录制后,录制宏的位置就会变成结束录制。
打开VBA,此时会多出一个新的模块1,就是宏的代码:
Excel 中如何运行 VBA 代码?
一般来说,运行 VBA 有以下 3 种方法:
- 从「开发工具」选项卡运行
- 通过给「形状」指定宏的方式运行
插入一个形状,选择形状,右键指定宏(可以给任何形状指定宏):
3. 通过给「按钮」指定宏的方式运行
找到开发工具→插入命令,点击插入命令,从列表中选择「表单控件→按钮」,击按钮,这时出现一个宏列表。其中选择想要指定的宏,点击确定,完成指定宏(可以点击运行)。
VBA 变量、类型、运算符
VBA 变量基础教程(VBA 核心概念)
变量定义
声明变量使用以下语法:
Dim [变量名] As [数据类型]
VBA 中规定,变量命名需要符合以下条件,否则程序出错。
- 首字母必须以字母开头。
- 不能包含空格、.(英文句号)、!(感叹号)、@、&、$、# 等字符。
- 长度不能超过 255 个字符。
- 不能使用VBA 中保存的关键词作为变量名。
在实际开发过程,建议按驼峰法命名。驼峰法是一种很多编程语言通用的命名规则,优点是可读性高、易于理解。
骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母。
例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。
数据类型
VBA 中的数据类型主要分为三大类,一个是数字类型,一个是非数字类型,一个是通用类型。
例子(命名及赋值):
Dim name As String
name = "张三"
Range("A1") = name
VBA 常量基础教程(基础概念)
声明常量:
Const [常量名] As [数据类型] = [值]
常量的命名和类型与变量相同,下面看一个例子:
现在看一个实例,将 π 的值作为一个常量声明,在后续的过程中,直接使用 Pi 作为 π 的值参与计算。
Sub MyCode()
'声明 π 常量
Const Pi As Double = 3.14159
'声明半径 r 和周长 C 变量
Dim r As Double
Dim C As Double
'从单元格 A1 读取半径值
r = Range("A1").Value
'计算周长
C = 2 * Pi * r
MsgBox "周长为:" & C
End Sub
VBA 运算符基础教程(加减乘除+高级操作)
首先是最基础的,赋值运算符 ( = )。
VBA 数据类型基础教程(程序更高效、更精准)
VBA 也提供多种文本函数,可直接在程序中使用,包括:
Format:格式化数据,并以文本类型返回
InStr:返回指定字符的位置
InStrRev:反方向返回指定字符位置
Left:返回左侧指定长度文本
Len:返回文本长度
LCase:大写字母转换成小写字母
LTrim:清除开头的空格
Mid:返回指定的开始和结束位置之间的文本
Replace:替换文本中的指定字符
Right:返回右侧指定长度文本
RTrim:清除末尾处的空格
Space:返回指定重复数的空格文本
StrComp:返回比较两个文本的结果
StrConv:将文本转换成指定格式
String:返回指定重复数的文本
StrReverse:逆转提供的字符串
Trim:清除开头和结尾处的空格
UCase:将小写字母转换成大写字母
参考链接: 懒人Excel