1.3.3 加、减、乘、除——基本的算术运算符
Excel最常见的用途就是对各种数字进行计算汇总,同样,VBA程序中最常用到的语句也离不开算术运算。
在 VBA 中编写算术运算语句,与数学中列算式的方法几乎相同,无非就是加、减、乘、除各种符号的使用。只不过受电脑键盘设计的限制,有些符号的写法略有不同,如表1-1所示。
表1-1 VBA算术运算符
关于算术运算,以下几点需要初学者特别注意:
★ 所有运算符必须写成英文半角符号,误写为全角符号会导致计算机无法理解。
★ 当一个表达式中包含多个运算符时,VBA 程序的计算顺序同样遵循“先乘除后加减”的算术运算优先级。比如3+2*7的计算结果是17(先计算2乘以7,再加上3),而不是35(先计算3加2,再乘以7)。
★ 可以使用半角圆括号来改变计算优先级。比如(3+2)* 7 的计算结果就是35,而非17。但是与数学中的算术式不同,VBA中没有“大括号”“中括号”的概念。如果需要使用多层括号来改变优先级,所有括号都要写成半角圆括号,比如(3+(5 – 4)* 2)* 7。这一点与Excel公式的要求是一样的。
★ 有一些简单的算术运算语句无法正确执行。比如 Cells(3,2)=30000*5,看起来没有任何问题,可是单击“运行”按钮后却会报出错误,这是计算机内部对数据类型、数据精度等方面的限制所导致的。为降低初学门槛,本书将这部分内容放在后面相关章节中详细讲解。
★ 很多读者可能对模运算(Mod)比较陌生。事实上,在很多涉及“周期性变化”的应用场景中,使用模运算都能够非常巧妙地解决问题。本书安排了特定章节讲述模运算的使用技巧。
理解了算术运算的写法,读者可以在Excel工作簿中写一个小程序作为练习。练习的要求是:编写一个名为“Demo2”的VBA程序,每当执行它时,就会将C2单元格与C3单元格中的内容相加,并把结果写入C4单元格中。请读者先自己思考并编写运行该程序,然后参考图1.14所示的答案。