欢迎大家来到IT世界,在知识的湖畔探索吧!
一、从厨房理解运算符(生活化类比)
场景设定:想象你在烹饪Excel数据大餐
|
运算符类型 |
厨房工具 |
功能演示 |
VBA代码示例 |
|
加法(+) |
搅拌器 |
合并面粉(数据) |
总价 = 单价 + 运费 |
|
减法(-) |
过滤筛 |
分离杂质(筛选数据) |
净利润 = 营收 – 成本 |
|
乘法(*) |
烤箱 |
批量生产(重复计算) |
总产量 = 日产量 * 天数 |
|
除法(/) |
量杯 |
精确分配(比例计算) |
人均成本 = 总成本 / 人数 |
|
连接(&) |
裱花袋 |
组合食材(拼接文本) |
姓名 = 姓氏 & ” ” & 名字 |

欢迎大家来到IT世界,在知识的湖畔探索吧!
二、运算符类型全解析(带记忆口诀)
2.1 算术运算符
|
运算符 |
功能描述 |
示例代码 |
特殊说明 |
|
+ |
加法/字符串连接 |
总价=单价+运费 |
文本相加需用& |
|
– |
减法/负号 |
温差=最高温-最低温 |
可处理日期计算 |
|
* |
乘法 |
面积=长*宽 |
支持科学计数法 |
|
/ |
浮点除法 |
平均分=总分/人数 |
结果保留小数 |
|
\ |
整数除法 |
整箱数=总数\12 |
直接取整去尾 |
|
Mod |
取余运算 |
余数=100 Mod 7 → 2 |
常用于周期计算 |
|
^ |
幂运算 |
复利=本金*(1+利率)^年数 |
优先级高于乘除 |
' 基础四则运算 Range("D2") = Range("B2") + Range("C2") ' 加 Range("E2") = Range("D2") * 0.1 ' 乘 ' 进阶操作 剩余天数 = 30 - Day(Date) ' 减 平均分 = (数学 + 语文 + 英语) / 3 ' 除
欢迎大家来到IT世界,在知识的湖畔探索吧!
记忆口诀:
“加减乘除幂(^)取余(Mod),先算括号再乘除,同级运算从左数”
2.2 比较运算符
欢迎大家来到IT世界,在知识的湖畔探索吧!If 销售额 > 10000 Then ' 大于 Range("A1").Font.Color = vbGreen ElseIf 库存量 <= 安全库存 Then ' 小于等于 Range("B2").Interior.Color = vbRed End If
符号速记表:
|
运算符 |
功能描述 |
ASCII码比较示例 |
注意事项 |
|
= |
等于 |
“A” = “a” → False(计算机判断为不等于) |
区分字符大小写 |
|
<> |
不等于 |
100 <> 99 → True(计算机判断100不等于99为正确) |
支持所有数据类型 |
|
> |
大于 |
“B” > “A” → True(计算机判断为正确,因为B的ASCII值大于A的ASCII值) |
文本按字典序比较 |
|
< |
小于 |
#2/1# < #3/1# → True(计算机判断2月1号小于3月1号为正确) |
日期可比较 |
|
>= |
大于等于 |
5 >= 5 → True(计算机判断5>=5为正确) |
不可写为=> |
|
<= |
小于等于 |
6 <= 5 → False(计算机判断6<=5是错误的) |
不可写为=< |
2.3 逻辑运算符
And,表示几个条件同时满足才可以。
Or,表示几个条件只有有一个条件满足就行。
Not,表示“不是”。
If (年龄 >= 18) And (信用分 > 80) Then ' 同时成立 放款额度 = 月收入 * 12 ElseIf 紧急程度 Or 特批标志 Then ' 任一成立 加急处理 End If
真值表速查:
|
A |
B |
A And B |
A Or B |
|
True |
True |
True |
True |
|
True |
False |
False |
True |
|
False |
False |
False |
False |
2.4 特殊运算符
连接符“&”,举个比较恶心的例子,都看过人体蜈蚣这部电影吧,这个运算符的效果就和那差不多,把字符或字符串连接到一起组成一个新的字符或字符串。
Like,可以理解为模糊匹配,运算符用于判断一个字符串是否与指定的模式相匹配。具体看以下例子。
IS,可以理解为“是”,运算符用于比较两个对象的引用是否相同。具体看以下例子。
欢迎大家来到IT世界,在知识的湖畔探索吧!' 连接符 客户全名 = Range("A1") & "-" & Range("B1") ' Like模糊匹配 If 产品型号 Like "A*2024" Then ... ' 匹配A开头2024结尾 ' Is判断对象 If Range("A1") Is Nothing Then ...
三、优先级陷阱(真实案例)
3.1 错误示范
' 意图:计算(3+5)*2=16 错误结果 = 3 + 5 * 2 ' 得到13 ' 正确写法 正确结果 = (3 + 5) * 2
3.2 优先级金字塔
以下示例中“–>”可以立即为“优先于”
欢迎大家来到IT世界,在知识的湖畔探索吧![括号] --> [指数运算^] [指数运算^] --> [乘除*/] [乘除*/] --> [整除\] [整除\] --> [取余Mod] [取余Mod] --> [加减+-] [加减+-] --> [字符串连接&] [字符串连接&] --> [比较运算符] [比较运算符] --> [逻辑Not] [逻辑Not] --> [逻辑And] [逻辑And] --> [逻辑Or]
四、实训练习场
案例1:智能BMI计算器
Sub 计算BMI() Dim 身高m As Double Dim 体重kg As Double 身高m = Range("B2") / 100 ' 厘米转米 体重kg = Range("C2") Range("D2") = 体重kg / (身高m ^ 2) End Sub
▶ 知识点:指数运算/单位转换
案例2:快递费用计算
欢迎大家来到IT世界,在知识的湖畔探索吧!If 重量 > 5 Then 费用 = 10 + (重量 - 5) * 2 ' 首重5kg10元,超重每kg2元 Else 费用 = 10 End If
▶ 知识点:复合运算/条件判断
五、常见错误
症状1:类型不匹配
' 错误代码 年龄 = "25岁" If 年龄 > 18 Then... ' 报错:文本与数字比较 ' 修复方案 年龄 = CInt(Replace("25岁", "岁", ""))
症状2:隐式转换陷阱
欢迎大家来到IT世界,在知识的湖畔探索吧!MsgBox "100" + 50 ' 结果150(自动转数字) MsgBox "100" & 50 ' 结果"10050"(转文本连接)
症状3:优先级误解
' 意图:判断成绩在60-80之间 If 60 < 成绩 < 80 then... if> 60 And 成绩 < 80 Then...
六、调试工具箱
6.1 立即窗口实验
按Ctrl+G输入测试:
欢迎大家来到IT世界,在知识的湖畔探索吧!? 3 + 5 * 2 ' 验证优先级 ? "A" & 123 ' 观察自动转换 ? 5 > 3 And 4 < 2 ' 测试逻辑运算
6.2 分步执行观察
按F8逐行运行代码时:
- 悬停变量查看实时值
- 右键表达式→快速监视
6.3 括号可视化
' 复杂表达式拆解 原式 = 5 + 3 * 2 ^ 2 / 4 ' 添加辅助括号 阶段1 = 2 ^ 2 ' 4 阶段2 = 3 * 阶段1 ' 12 阶段3 = 阶段2 / 4 ' 3 结果 = 5 + 阶段3 ' 8
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/118163.html