基础知识
第十二篇、VBA基础知识(一):注释和操作符
接上一篇:「从应用场景切入,构建认知框架;再通过逆向拆解,夯实底层基础」
“控制语句”控制了代码行的执行流程,相关内容通过两篇介绍做了认识。
程序是由一行行代码的堆叠在一起的,“运算”和“逻辑判断”放置在代码行中、在控制语句的作用下,就会成为一个满足要求的程序。
其它的在代码行最常见的就是“注释和操作符(运算符)”,它们是VBA里最平常的、无处不在!来了解下它们,看它们是如何在程序中发挥作用的?
本篇视频:
|01 注释
“注释”的使用在编程中的作用不仅仅是“写代码释义、帮助理解代码逻辑”,对代码调试的帮助也很大。养成写注释的习惯能提升代码的可维护性,在程序调试中使用“注释”,很容易就能理解当前代码行发挥的作用!
关于“注释”:
- 1、注释的作用:用于解释代码逻辑,被注释的语句行或段,不会被VBA执行。
- 2、VBA中注释方法:单引号 ',在代码行末尾或单独一行添加注释,还有一种是Rem 关键字,通常用在行首,但不如单引号灵活就不常用。
- 3、注释在代码中经常出现的位置:
- ①过程开始、即Sub 过程名称()之后,对整个过程代码作用的描述和开发者信息;
- ②复杂的逻辑计算前,注释说明“代码段”的意图,方便后期维护。
- 4、多行代码注释与取消注释的快捷方式:VBA不支持用特定的语法来创建多行注释(比如Pyhton语言两个'''****'''之间的代码行都不会被执行,VBA就不可以),只能在行开始位置放置单引号“'”。
- 选中需要注释掉的多行代码,在Visual Basic编辑器顶端的“视图”→“工具栏”→”编辑“→”设置注释块“,就可以批量注释了。
- 首次使用时,可以把整个”编辑“条拖到工具栏顶端,方便以后使用。同样的路径,“解除注释块”就可以批量解除注释。
示例代码:
一段规范的代码结构
Sub Square_Sum()
'对1-10的各个正数的平方求和
'小包,2025/4/1
' 声明变量
Dim i As Long ' 循环计数器
Dim total As Long ' 存储累计和
Dim square As Long ' 存储当前数值平方
total = 0' 初始化总和
' 循环计算1到10的平方和
For i = 1 To 10
square = i ^ 2 ' 计算当前数值平方
total = total + square ' 累加到总和
Next i
' 输出最终结果
MsgBox "1到10的平方和为:" & total, _
vbInformation, _
"计算结果"
End Sub
|02 VBA操作符(运算符)
操作符(运算符)的完整分类有:算术运算(加减乘除...)、比较运算(等于大于小于)、逻辑运算(与或)、连接运算(&、+)。
通过这些运算符,VBA能够执行各种复杂的计算和逻辑判断,它被广泛应用于数据处理和自动化任务中。
运算符是最基础的“计算和实现逻辑”的知识,通过它们对数字的加加减减、大于小于等于的比较、是与非的判断、字符串的连接,能实现巨量的关于组合关系的逻辑运算。
较为基础也就容易理解,在使用它们时需要关注:
- 1、运算符的优先级别:从高到低是:括号()、指数ʌ、负号-、乘除*/、取模Mod、加减+-、连接&、比较=><、逻辑Not\And\or,和数学一样,先乘除后加减,遇到括号最优先!!。
- 2、“/”和“\”符号的区别:/是除,返回浮点数,\返回整数
- 3、& 和 +都可以连接字符串,+号若操作数值会执行加法,&只是连接
完整的运算符及示例:
示例代码:
运算符的使用和返回值:
Sub 运算符()
'测试每个运算符,返回值
'算术运算符
Cells(2, 4) = 3 + 5 '加法
Cells(3, 4) = 10 - 4 '减法
Cells(4, 4) = 6 * 7 '乘法
Cells(5, 4) = 10 / 3 '除法
Cells(6, 4) = 10 \ 3 '整除
Cells(7, 4) = 10 Mod 3 '取模
Cells(8, 4) = 2 ^ 3 '指数
Cells(9, 4) = -3 '负号
'比较运算符
Cells(10, 4) = 5 = 5 '等于
Cells(11, 4) = 5 <> 3 '不等于
Cells(12, 4) = 7 > 5 '大于
Cells(13, 4) = 3 < 2 '小于
Cells(14, 4) = 5 >= 5 '大于等于
Cells(15, 4) = 4 <= 6 '小于等于
Cells(16, 4) = "ABC" Like "A*" '匹配
Dim obj1 As Worksheet
Dim obj2 As Range
Set obj1 = ThisWorkbook.Worksheets(1)
Set obj2 = ThisWorkbook.Worksheets(1).Range("A1")
Cells(17, 4) = obj1 Is obj2 '对象引用
Debug.Print TypeName(obj1)
'逻辑运算符
Cells(18, 4) = 5 > 6 And 2 < 4 '逻辑 与,同时满足条件才为True
Cells(19, 4) = 5 > 6 Or 2 < 4 '逻辑 或,有一个满足条件即为True
Cells(20, 4) = Not (5 = 3) '逻辑 非,不满足条件时 为True
'连接运行符
Cells(21, 4) = "Hello" & "World" '&连接两个字符串
Cells(22, 4) = "Hello" + "World" '+连接两个字符串
Cells(23, 4) = 5 + 3 '+连接两个数字时,会返回求和的结果
Cells(24, 4) = "A" + 1 '+连接一个数字、一个字符串,会返回错误结果
End Sub
- 运算符能直接实现各种算术和逻辑运算并返回结果,在逻辑判断语句中使用它或它们的组合,也能实现更丰富的场景。
下一篇:VBA基础语句(二):几个提升代码运行效率的知识
任何程序的运行都是消耗计算机性能的。实现同样的功能,优秀的代码会在最短的时间、用最小的性能消耗完成计算。
当然,在初始接触编程时也不必考虑实现优化,能完成工作的代码就是好代码。不复杂的程序运行时间从20秒节约到8秒,貌似意义也不大!需要优化的是那些占用太多性能、长耗时的程序。
VBA程序优化的一般法则
- ①先优化算法,再优化代码;
- ②也会符合二八定律,即20%的代码消耗80%的性能;
- ③优化也要避免过度,在保证代码可读性的前提上进行。
VBA程序语言的运行秉承着从上到下、从左到右的规则。我们提到的代码优化,也只是对“基础运行环境、控制语句、对象操作、计算”优化的几个关键技巧。通过组合使用这些优化技巧,可使VBA代码运行速度提升!
下一篇 基础知识(二):代码优化
请开发者喝杯咖啡!