Excel中宏 VBA编程常用语法
注释
以英文单引号 (')开头,后接需要解释说明的内容。
1.过程的开始与结束
中间填写自己编写的代码
Sub MyCode()
要执行的代码
End Sub
2.变量
文本类型变量
Dim val As String
val = "Zhang San"
数字类型变量
Dim age As Integer
age = 18
类型 说明 数据范围
Byte 字节 0 至 255
Integer 整数 -32,768 至 32,767
Long 长整数 -2,147,483,648 至 2,147,483,648
Single 单精度浮点数 在表示负数时: -3.402823E38 ~ -1.401298E-45
在表示正数时: 1.401298E-45 ~ 3.402823E38
Double 双精度浮点数 在表示负数时: -1.79769313486231E308 ~ -4.94065645841247E-324
在表示正数时: 4.94065645841247E-324 ~ 1.79769313486231E308
Currency 货币 -922,337,203,685,477.5808 至 922,337,203,685,477.5807
Decimal 定点数 未放置定点数: +/- 79,228,162,514,264,337,593,543,950,335
放置定点数: +/- 7.9228162514264337593543950335
逻辑类型变量
只有两个值,True 和 False,即真与假。
Dim isPass As Boolean
isPass = False
isPass = 70 >= 60
日期和时间类型变量
使用数字表示,整数部分代表日期,小数部分代表时间。
日期从 100-1-1 开始到 9999-12-31。
时间从 00:00:00 到 23:59:59。
给日期变量赋值时,可以直接把日期放置在两个 # 之间赋值,也可以使用数字,还可以把日期作为文本赋值:
Dim birthday As Date
Dim time As Date
birthday = #2018-1-1#
birthday = 43101
birthday = "2018-1-1"
time = #12:00:00#
time = 0.5
time = "12:00:00"
数组变量
Dim Val(1 to 4) As String
给数组的元素赋值
Val(1) = "Excel"
Val(2) = "Word"
Val(3) = "PowerPoint"
Val(4) = "Outlook"```
3.程序运行结构
顺序结构:从上到下、从左到右的顺序。
循环结构:循环部分代码,按照指定的循环次数,循环重复执行。
判断结构:当提供的表达式为真(True)时,判断结构的主体部分才会被执行,否则跳过。
"循环结构"
For … Next 循环 按指定次数循环执行
For Each 循环 逐一遍历数据集合中的每一个元素
Do While … Loop 循环 当条件为真时,循环执行
Do … Loop While 循环 当条件为真时,循环执行。无论条件真假,至少运行一次
Do Until … Loop 循环 直到条件为真时,循环执行
Do … Loop Until 循环 直到条件为真时,循环执行。无论条件真假,至少运行一次
Exit For 跳出 For 循环
Exit Do 跳出 Do While/Until 循环
"For循环"
For [变量] = [初始值] To [结束值] Step [步长]
'这里是循环执行的语句
Next
"DoWhile循环"
Do While [条件表达式]
'循环执行的代码
Loop
"With结构语法"
With [对象]
.[属性] = [数据]
.[方法]
'其他属性和方法
End With
"判断"
If 条件表达式 Then
'表达式为真时,执行的代码
Else
'假时执行的代码
End If
4.基础运算符
"连接操作符& "
_ (下划线) 将一行代码分解成两行
: ( 英文冒号) 将两行代码放置在一行
"比较运算符"
比较提供的两个变量,如果符合比较条件,返回 True,否则,返回 False。
大于等于 >= 小于等于 <= 不等于 <>
"算术运算符"
+ 两数相加
– 两数相减
* 两数相乘
/ 两数相除
\ 两数相除,取整数部分
Mod 两数相除,取余数
^ 幂运算
-(取负) 对数字取负
"逻辑运算符"
And 逻辑与,两个表达式都是真,返回 True
Or 逻辑或,两个表达式至少有一个为真,返回 True
Not 逻辑否,对逻辑表达式取否
Xor 逻辑异或,如果两个表达式不相同,返回 True
5.内置函数
Format:格式化数据,并以文本类型返回
InStr:返回指定字符的位置
InStrRev:反方向返回指定字符位置
Left:返回左侧指定长度文本
Len:返回文本长度
LCase:大写字母转换成小写字母
LTrim:清除开头的空格
Mid:返回指定的开始和结束位置之间的文本
Replace:替换文本中的指定字符
Right:返回右侧指定长度文本
RTrim:清除末尾处的空格
Space:返回指定重复数的空格文本
StrComp:返回比较两个文本的结果
StrConv:将文本转换成指定格式
String:返回指定重复数的文本
StrReverse:逆转提供的字符串
Trim:清除开头和结尾处的空格
UCase:将小写字母转换成大写字母