VBA 运算符基础教程

使用 VBA 开发某项功能,本质上是,对变量进行基础的运算和操作,例如加减乘除比较等。为此,VBA 提供了很多运算符和操作符,利用它们可以实现复杂的运算。

今天先学习 VBA 提供的基础运算符和操作,以及它们的基本用法。VBA 运算符可以分为以下 6 类:

  • 赋值运算符
  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 连接运算符
  • 其他运算符

赋值运算符

首先是最基础的,赋值运算符 ( = )。在 VBA 变量一文中介绍,赋值语法核心就是 =(等号),变量在左侧,数据在右侧。可以理解为变量等于赋值的数据。

运算符 说明 示例
= 给变量赋值 name = “Zhang San”

算术运算符

算数运算符是我们常用的数学运算符,包括加减乘除等。VBA 中完整的算术运算符如下。

假设 a = 10b = 3-> 表示结果。

运算符 说明 示例
+ 两数相加 a + b -> 13
两数相减 a – b -> 7
* 两数相乘 a * b -> 30
/ 两数相除 a / b -> 3.33…
\ 两数相除,取整数部分 a \ b -> 3
Mod 两数相除,取余数 a Mod b -> 1
^ 幂运算 a ^ b -> 1000
-(取负) 对数字取负 -a -> -10

比较运算符

比较运算符,比较提供的两个变量,如果符合比较条件,返回 True,否则,返回 False。

假设 a = 10b = 3-> 表示结果。

运算符 说明 示例
= 比较两个值是否相等 a = b -> False
> 大于 a > b -> True
>= 大于等于 a >= b -> True
< 小于 a < b -> False
<= 小于等于 a <= b -> False
<> 不等于 a <> b -> True

逻辑运算符

逻辑运算符对逻辑值,即 True 和 False,进行逻辑运算,返回运算结果,运算结果也是逻辑值。

假设 a = Trueb = False-> 表示结果。

运算符 说明 示例
And 逻辑与,两个表达式都是真,返回 True。 a And b -> False
Or 逻辑或,两个表达式至少有一个为真,返回 True。 a Or b -> True
Not 逻辑否,对逻辑表达式取否 Not a -> False
Xor 逻辑异或,如果两个表达式不相同,返回 True a Xor b -> True

连接操作符

VBA 中的连接运算符用于连接 2 个或多个文本。其用法与 Excel 公式中的 & 符号相同。

运算符 说明 示例
& 连接两个文本 “Zhang” & ” ” & “San” -> “Zhang San”

其他操作符

运算符 说明
_ (下划线) 将一行代码分解成两行
: ( 英文冒号) 将两行代码放置在一行

 

转载注明:文章转载自「懒人Excel - www.lanrenexcel.com
订阅评论
提醒
35 评论
最新
最旧 最多投票
内联反馈
查看所有评论
CCCC
10 月 前

请问一下 OR 跟XOR 的区别是什么?都返回TRUE

ysh...
10 月 前

提问:有没有这样的编程代码,excel里数据A的和=B(B会随时更新),数据A随每一个B数据更新的数值而累计相加呀?

poe
24 天 前
回复给  懒人Excel

请问这个代码我该如何运行呀

ahh
1 年 前

努力学习ing

最后由ahh编辑于1 年 前
安静的我
2 年 前

写的非常仔细,粗略的浏览一下,期待下次学习 ,你太优秀了!

菜鸟*
2 年 前

大佬,我设置了一个按钮点击后将某单元格数值输出到其他单元格,然后其他单元格数值累加,如何实现?
目前编写如下

sub 按钮录入()

‘e 是 数值

‘f 是 累加数值

Range(“F5:J5”).Select
  Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
‘目标单元格区域插入一行

 Dim e As Integer
 Dim f As Integer
 
 e = Range(“B12”)
 Range(“G5”) = e

 f = Range(“B12”) + f
 Range(“I5”) = f

End Sub

数值并不累加,请问如果我要实现数值累加应该怎么编写

VBA小白
2 年 前

假设 a = 10,b = 3,-> 表示结果。
a >= b -> True,这个大于但不等于吧,是不是应该返回false

懒提高效率
2 年 前

const a as integer = 10
const b as integer = 3
a + b -> 13 这句出错
这个语句粘贴在VBA直接报错,提示缺少表达式,这是什么原因?

qhz0220
2 年 前

“Zhang” & ” ” & “San” -> “Zhang San”这里是不是&打多了,是否应该为“Zhang” & “San” -> “Zhang San”

Janis
2 年 前
回复给  懒人Excel

空格的引号是两个下引号而不是一对上下引号,可能引起误解

xiaoA
2 年 前

非常好!是否也说明一下双引号的作用和意思,便于大家理解

Dallas
2 年 前

楼主,首段的算“术”运算符写成了算”数”运算符

Dallas
2 年 前
回复给  懒人Excel

顺便夸夸楼主,这
教程真的不错

zwww
2 年 前

两数相除 后面的a/b->2.5 是不是错了呀? 应该是3.333333吧。
教程挺好,感谢!!

Michelle
3 年 前

想请教:

  1. 下划线是将一行代码分解成两行,这个的作用是什么?在什么情景下会需要使用呢?
  2. 英文冒号是将两行代码放置在一行,那这个在什么情景下需要使用呢?
zheng
3 年 前

写的太好了,赞一个

VBA
3 年 前

赋值和比较运算都是 = 如何判断 a=b=c 这种式子是赋值还是比较?

昵称游客
4 年 前

算术运算符中“-”号说明应该是“两数相减”而不是“两数相间”
a >= b => False应为a >= b -> False

slq
3 年 前
回复给  懒人Excel

a >= b -> False 不是很明白

Michelle
3 年 前
回复给  懒人Excel

10>=3在VBA里面是False吗?感觉数学式是正确呢,结果应该是True?

35
0
希望看到您的想法,请您发表评论x