如何零基础学习VBA——运算符介绍
VBA运算符是用于执行数学和逻辑操作的符号或关键字。以下是常见的几种VBA运算符:
数学运算符:包括加法运算符( ),减法运算符(-),乘法运算符(*),除法运算符(/)和模数(Mod)运算符。比较运算符:例如相等运算符(=),不等运算符(<>),大于运算符(>),小于运算符(<),大于等于运算符(>=)和小于等于运算符(<=)。逻辑运算符:用于在条件语句中进行逻辑运算。例如AND运算符,OR运算符,NOT运算符等。字符串运算符:用于连接两个字符串。例如“&”运算符或者使用“ ”运算符。
需要注意的是,在 VBA 中,“=”运算符表示赋值操作而非相等操作。相等的判断需要使用“==”或者使用“is”关键字。
VBA中的运算符主要分为以下几种:
1、算术运算符:用于进行数学运算。示例代码:
Dim a As Integer
Dim b As Integer
a = 5
b = 3
MsgBox a b '加法
MsgBox a - b '减法
MsgBox a * b '乘法
MsgBox a / b '除法
MsgBox a Mod b '取模,即求余数
2、比较运算符:用于比较两个值是否相等或大小关系。示例代码:
Dim a As Integer
Dim b As Integer
a = 5
b = 3
MsgBox a = b '相等
MsgBox a <> b '不相等
MsgBox a > b '大于
MsgBox a < b '小于
MsgBox a >= b '大于等于
MsgBox a <= b '小于等于
3、逻辑运算符:用于组合多个条件,得到一个整体条件。示例代码:
Dim a As Integer
Dim b As Integer
a = 5
b = 3
MsgBox (a > b) And (a < 10) 'And运算,表示两个条件同时成立
MsgBox (a > b) Or (a < 3) 'Or运算,表示两个条件之一成立
MsgBox Not (a < b) 'Not运算,表示取反
4、字符串运算符:用于操作字符串。示例代码:
Dim str1 As String
Dim str2 As String
str1 = "Hello, "
str2 = "world!"
MsgBox str1 & str2 '字符串连接,使用&符号
MsgBox Len(str1) '字符串长度,使用Len函数
MsgBox Left(str1, 5) '从左边截取指定长度的子字符串,使用Left函数
MsgBox Right(str2, 3) '从右边截取指定长度的子字符串,使用Right函数
MsgBox InStr(str1, "o") '查找子字符串在主字符串中的位置,使用InStr函数
5、其他运算符:如赋值运算符、条件运算符(三目运算符)、地址运算符等。示例代码:
Dim a As Integer
Dim b As Integer
a = 5
b = IIf(a > 3, a, 3) '条件运算符,表示if-else关系,在VBA中用IIf函数实现
MsgBox b
Dim ptr As LongPtr
ptr = ObjPtr(Range("A1")) '地址运算符,表示获取变量的内存地址,ObjPtr表示对象的内存地址
MsgBox Hex(ptr) '将地址转换为16进制形式,按照系统位数长度来转换
在 VBA 中,表达式中发生多个操作时,将按预先确定的顺序(称为运算符优先级)来计算和解析各个部分。当表达式包含多个类别中的运算符时,将根据以下规则对其进行计算:
算术运算符和串联运算符具有以下部分中描述的优先级顺序,并且其优先级比比较、逻辑和按位运算符的优先级高。所有比较运算符都具有相同的优先级,并且其优先级比逻辑和位算符更高,但优先级低于算术运算符和串联运算符。逻辑运算符和位运算符具有以下部分中描述的优先级顺序,并且其优先级比算术、串联和比较运算符的优先级低。具有相同优先级的运算符将按照它们在表达式中出现的顺序从左到右进行计算。
简单来说,运算符的优先级如下:
括号 ( )指数运算符 ^(从右向左)乘、除、取模运算符 * / mod(从左向右)整除运算符 \(从左向右)加、减运算符 -(从左向右)字符串连接运算符 &(从左向右)比较运算符 = <> < > <= >=(从左向右)逻辑运算符 Not And Or Xor(从左向右)
举一些例子说明下:
(5 3) * 2 的结果是 16,因为括号具有最高的优先级,所以先计算括号内的内容。4 2 ^ 3 的结果是 12,因为指数运算符的优先级高于加法运算符,所以先计算 2^3。10 / 5 * 2 的结果是 4,因为乘法运算符和除法运算符的优先级相同,所以按照从左到右的顺序进行计算。16 \ 3 的结果是 5,因为整除运算符的优先级高于加法运算符,所以先对 16 \ 3 进行取整。"Hello, " & "world!" 的结果是 "Hello, world!",因为字符串连接运算符的优先级比加法运算符低,所以先按照从左到右的顺序进行字符串连接。5 3 < 9 And 2 * 3 = 6 的结果是 True,因为比较运算符和逻辑运算符的优先级相同,按照从左到右的顺序依次计算。
需要注意的是,如果存在多个运算符且具有相同的优先级,则 VBA 将按照从左到右的顺序进行计算。例如,4 2 * 3 的结果为 10,而不是 18,因为乘法运算符优先级高于加法运算符,但是这里先计算的是 2 * 3,再与 4 相加。
华为Mate X5折叠屏维修费公布 内屏维修价格5199元
华为最新款折叠屏手机华为MateX5已经全面开售,售价从12999元起。华为官网公布了这款手机的备件维修价格。华为MateX5的内屏维修价格为5199元,外屏维修价格为999元,主板维修价格为4499元,电池维修价格为359元,内外屏前摄维修价格均为379元,主摄维修价格为699元,广角镜头维修价格为265元,长焦镜头维修价格为578元。站长网2023-09-15 09:47:500000强大的AI演示制作器“万兴智演” 3秒完成PPT大纲
万兴智演是一款全面的AI演示制作器,具备强大的功能,旨在帮助用户轻松创建具有影响力的虚拟演示。它的核心功能包括快速AI演示制作、画布编辑和场景安排、AI提升效率、一键呈现和高性价比,使每个人都能够以更智能、更高效的方式表达和分享他们的想法。无论您是在知识共享、培训、商业还是教育领域,万兴智演都能满足您多样化的制作需求,提供出色的演示制作体验。站长网2023-10-20 18:14:330000给AI Agent完整的一生!港大NYU谢赛宁等最新智能体研究:虚拟即现实
【新智元导读】近日,来自香港大学的JihanYang和纽约大学的谢赛宁等人发表了新的成果,将真实世界的地图、街景等各种信息融入Agent所在的虚拟世界,为智能体的未来赋予了无限可能。怎样能构建更强大的AIAgent?答案是给他们一个完整而真实的世界。最近,来自香港大学的JihanYang和纽约大学的谢赛宁等人,联合发表了一项新研究:在虚拟环境中模拟现实世界。站长网2024-03-03 19:15:110000作大死!Firefox 强制弹出全屏广告惹众怒
近几日,有用户发现Firefox浏览器出现了弹出式的全屏VPN广告,弹出的广告会禁用浏览器的功能、拒绝用户访问界面并使后台的所有内容变灰,直到被关闭。一些用户在Reddit上吐槽,说烦人的全屏广告甚至导致Firefox长达30秒无响应,迫使其终止浏览器进程。站长网2023-05-30 15:36:280000即梦全量上线实时画布功能 简单涂抹加提示词即可生成定制形状的图像
今天,即梦(前身为剪映Dreamina)官方宣布全量上线实时画布功能,目前,所有人都可以免费体验。实际上即梦很早就有智能画布的功能,用户可以利用AI一键抠图后,通过图生图功能加提示词重组图像。也可以直接在画布上文生图绘制图像。虽然现在文生图已经可以生成很优质的图像,但想得到比较符合用户设想的图案需要更精细的提示词描述或者大量抽卡。站长网2024-06-06 20:58:040000