VBA 中的注释以英文单引号 (‘) 开头,后面接注释的内容。从单引号开始的部分不会被执行。
'我是一行注释
变量是存储数据的一种表达方式。在程序开始,可以声明一个变量,指定变量的类型(数字、文本、逻辑值等),并给变量赋值。
在程序其他地方,就可以用该变量,使其存储的值参与运算。
'声明一个文本类型的变量
Dim s As String
'给 s 变量赋值,即 "Hello World"
s = "Hello World"
'在 A1 单元格写入 s 变量存储的数据
Range("A1").Value = s
Application 对象,表示 Excel 应用程序。
Workbook 对象,表示工作簿对象。
Worksheet 对象,表示工作表对象
Range 对象,表示单元格区域对象。
开发工具选项卡共包含三组命令,其中代码组的命令是使用最频繁的一组命令。加载项组和控件组的命令使用的较少。
今天先简单说一下代码组命令的功能。
编辑器中每个模块的基本用法如下:
选择【工具】–【选项】–【编辑器格式】
VBA可以通过工具栏或者鼠标右键插入/删除模块,导入/导出模块;VBA 模块导出的文件类型是【.bas】类型文件,可以使用记事本、代码编辑器等文本编辑器打开并修改。
插入过程可以通过工具栏,这时会弹出属性设置窗口,其中输入过程名,指定作用域(私有或共有)。其中私有指的是,插入的过程只能在当前模块内使用;共有指的是在工程内其他模块内也能被使用。也可以直接输入过程或函数的相关信息,输入完过程或函数的范围和名称后回车,VBA 编辑器自动将结束语句写好。
选中左侧工程列表中的工作簿,后右键,在弹出的选项列表中,选择「插入」。二级菜单中,选择「模块」,完成插入新模块。
下图位置可以修改模块名:
在模块中输入代码,运行。
Sub MyCode()
MsgBox "Hello World"
End Sub
结果:
点击「开发工具→录制宏」按钮。
进行需要录制内容的操作,比如:将B1单元格的背景改为浅绿色。点击结束录制按钮,点击开始录制后,录制宏的位置就会变成结束录制。
打开VBA,此时会多出一个新的模块1,就是宏的代码:
一般来说,运行 VBA 有以下 3 种方法:
声明变量使用以下语法:
Dim [变量名] As [数据类型]
VBA 中规定,变量命名需要符合以下条件,否则程序出错。
在实际开发过程,建议按驼峰法命名。驼峰法是一种很多编程语言通用的命名规则,优点是可读性高、易于理解。
骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母。
例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。
VBA 中的数据类型主要分为三大类,一个是数字类型,一个是非数字类型,一个是通用类型。
例子(命名及赋值):
Dim name As String
name = "张三"
Range("A1") = name
声明常量:
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 也提供多种文本函数,可直接在程序中使用,包括:
Format:格式化数据,并以文本类型返回
InStr:返回指定字符的位置
InStrRev:反方向返回指定字符位置
Left:返回左侧指定长度文本
Len:返回文本长度
LCase:大写字母转换成小写字母
LTrim:清除开头的空格
Mid:返回指定的开始和结束位置之间的文本
Replace:替换文本中的指定字符
Right:返回右侧指定长度文本
RTrim:清除末尾处的空格
Space:返回指定重复数的空格文本
StrComp:返回比较两个文本的结果
StrConv:将文本转换成指定格式
String:返回指定重复数的文本
StrReverse:逆转提供的字符串
Trim:清除开头和结尾处的空格
UCase:将小写字母转换成大写字母
参考链接: 懒人Excel