基础运算符与常用内置函数
常用运算符
分类 | 运算符 | 说明 | 示例代码 | 示例结果 |
---|---|---|---|---|
算术运算符 | + | 加法 | x = 10 + 5 | 15 |
- | 减法 | x = 10 - 5 | 5 | |
* | 乘法 | x = 4 * 3 | 12 | |
/ | 除法(结果为浮点数) | x = 10 / 4 | 2.5 | |
\ | 整数除法(向下取整) | x = 10 \ 4 | 2 | |
Mod | 求余数(取模运算) | x = 10 Mod 4 | 2 | |
^ | 乘方(幂运算) | x = 2 ^ 3 | 8 | |
比较运算符 | = | 等于 | If x = 5 Then MsgBox "等于5" | 条件成立时弹框 |
<> | 不等于 | If x <> 5 Then MsgBox "不等于5" | 条件成立时弹框 | |
> | 大于 | If x > 5 Then MsgBox "大于5" | 条件成立时弹框 | |
< | 小于 | If x < 5 Then MsgBox "小于5" | 条件成立时弹框 | |
>= | 大于等于 | If x >= 5 Then MsgBox "大于等于5" | 条件成立时弹框 | |
<= | 小于等于 | If x <= 5 Then MsgBox "小于等于5" | 条件成立时弹框 | |
逻辑运算符 | And | 逻辑与 | If (x > 1) And (x < 10) Then MsgBox "在范围内" | 条件成立时弹框 |
Or | 逻辑或 | If (x < 1) Or (x > 10) Then MsgBox "超出范围" | 条件成立时弹框 | |
Not | 逻辑非 | If Not (x = 5) Then MsgBox "不等于5" | 条件成立时弹框 | |
字符串运算符 | & | 字符串连接 | str = "Hello" & " " & "World" | Hello World |
+ | 字符串连接(不推荐,因为会有类型混淆) | str = "Hello" + "World" | HelloWorld | |
赋值运算符 | = | 赋值 | x = 10 | x 赋值为 10 |
其他运算符 | := | 关键字参数赋值 | MsgBox Msg:= "Hello" | 弹出 Hello |
() | 函数调用或表达式优先计算 | y = (2 + 3) * 4 | 20 | |
: | 同一行内写多条语句 | x = 1: y = 2: z = x + y | 同时赋值 | |
\ | 整数除法,返回整数结果(向下取整) | x = 7 \ 2 | 3 | |
TypeOf ... Is | 判断对象类型 | If TypeOf obj Is Worksheet Then | 判断对象是否为工作表 | |
位运算符 | And | 位与 | x = 5 And 3 | 1 |
Or | 位或 | x = 5 Or 3 | 7 | |
Not | 位非 | x = Not 5 | -6 (补码表示) | |
Xor | 位异或 | x = 5 Xor 3 | 6 |
关键字
关键字 | 用途说明 | 示例代码 | 说明与输出 |
---|---|---|---|
Like | 字符串模式匹配,用于判断字符串是否符合某种模式(支持通配符) | vba Dim str As String str = "Hello123" If str Like "Hello###" Then MsgBox "匹配" Else MsgBox "不匹配" End If | # 表示数字,Hello123 匹配 "Hello###" ,弹出“匹配” |
Is | 用于判断两个对象是否引用同一个实例,通常用在对象比较 | vba Dim ws1 As Worksheet Dim ws2 As Worksheet Set ws1 = ThisWorkbook.Sheets(1) Set ws2 = ws1 If ws1 Is ws2 Then MsgBox "是同一个工作表对象" Else MsgBox "不是同一个对象" End If | 判断 ws1 和 ws2 是否指向同一个工作表对象,弹出“是同一个工作表对象” |
Like
通配符使用说明
通配符 | 说明 | 示例 | 匹配示例 |
---|---|---|---|
? | 代表任意单个字符 | a?c | 匹配 abc 、axc |
* | 代表任意长度的字符(包括零个) | a*c | 匹配 ac 、abc 、abbc |
# | 代表任意单个数字字符 (0-9) | ### | 匹配 123 、007 |
[charlist] | 代表匹配括号内任意一个字 符 | [aeiou]* | 匹配以元音字母开头的字符串,如 apple |
[!charlist] | 代表匹配不在括号内的任意字符 | [!0-9]* | 匹配不以数字开头的字符串 |
常用内置函数
分类 | 函数名 | 功能描述 | 简单示例代码 | 示例输出 |
---|---|---|---|---|
字符串函数 | Len | 返回字符串长度 | MsgBox Len("Hello") | 5 |
Left | 返回左边指定长度字符串 | MsgBox Left("Hello", 2) | He | |
Right | 返回右边指定长度字符串 | MsgBox Right("Hello", 3) | llo | |
Mid | 返回中间指定位置字符 | MsgBox Mid("Hello", 2, 3) | ell | |
InStr | 查找子串首次出现位置 | MsgBox InStr(1, "Hello World", "World") | 7 | |
Trim | 去除两端空格 | MsgBox Trim(" Hello ") | Hello | |
数学函数 | Abs | 绝对值 | MsgBox Abs(-10) | 10 |
Sqr | 平方根 | MsgBox Sqr(16) | 4 | |
Int | 向下取整 | MsgBox Int(3.9) | 3 | |
Round | 四舍五入 | MsgBox Round(3.14159, 2) | 3.14 | |
日期时间函数 | Now | 当前日期和时间 | MsgBox Now | 当前日期时间 |
Date | 当前日期 | MsgBox Date | 当前日期 | |
Time | 当前时间 | MsgBox Time | 当前时间 | |
DateAdd | 日期加减 | MsgBox DateAdd("d", 7, Date) | 当前日期+7 天 | |
DateDiff | 计算日期差异 | MsgBox DateDiff("d", #2025/5/1#, #2025/5/21#) | 20 | |
类型转换函数 | CStr | 转成字符串 | MsgBox CStr(100) | "100" |
CInt | 转成整数 | MsgBox CInt("123") | 123 | |
CDbl | 转成双精度浮点数 | MsgBox CDbl("123.45") | 123.45 | |
逻辑控制函数 | IsNumeric | 判断是否数字 | MsgBox IsNumeric("123") | True |
MsgBox IsNumeric("abc") | False | |||
IIf | 三元条件运算 | MsgBox IIf(5>3, "大于", "小于或等于") | 大于 |