如何零基础学习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 相加。
微软亚洲研究院推出NUWA-XL超长视频生成模型
你相信吗?只要输入16句简单描述,AI就能生成11分钟的动画了。近日,微软亚洲研究院推出了NUWA-XL超长视频生成模型,采用创新的DiffusionoverDiffusion架构,通过「从粗到细」的生成过程,可以并行生成高质量的超长视频,为多模态大模型提供了新的解题思路。论文地址:https://arxiv.org/abs/2303.12346站长网2023-04-20 11:16:450002对话「北冥有鱼」:电商机构入局淘宝内容直播,单个主播打赏收入超百万
2023年2月,淘宝直播发布优质内容激励政策,大力招募内容主播。在竞争越来越激烈的直播赛道,淘宝直播对于内容化的大力投入,让不少入局的机构和主播淘到了金、找到了新阵地。这其中,就跑出了一家成立仅2年的MCN机构——北冥有鱼,旗下拥有“蒙面姐弟”、“微风小哥”、“德立干将”等多个优质内容直播间。而且,据了解,北冥有鱼12月的打赏收入已经超过了200万。0000流媒体语音转换新突破!“StreamVoice”成功实现实时转换,仅需124毫秒延迟!
**划重点:**1.🚀StreamVoice是一种新颖的流媒体语言模型(LM)-based零射击语音转换(VC)方法,实现实时转换,并具有较高的转换速度。2.🌐该模型通过采用完全因果关联的上下文感知LM和临时独立的声学预测器,实现了流媒体能力。3.⚙️为了解决不完整上下文可能导致的性能降级问题,StreamVoice采用了教师引导的上下文预测和语义屏蔽策略。站长网2024-01-29 10:57:030000SyncDreamer:从单视图图像生成多视图一致图像以实现3D重建
最近,3D生成领域经历了迅猛的进展,其中一个备受瞩目、在GitHubRepo上广受欢迎的项目备受关注。这个项目被认为是最为稳定和通用的,用户只需提供一张图像,模型就能自动合成多个视图并生成相应的3D模型。项目地址:https://github.com/liuyuan-pal/SyncDreamer站长网2023-09-19 14:29:520001AMD预测该公司2023年AI芯片市场规模将达450亿美元
**划重点:**1.💰AMD估计今年数据中心人工智能处理器市场规模为450亿美元,2024年销售额预计将达20亿美元。2.🚀公司发布MI300系列新一代AI芯片,涵盖生成式AI和超级计算机应用,以应对快速增长的AI芯片需求。3.📈AMD预计到2027年,数据中心AI芯片市场规模将增长至约4000亿美元。0002