深入浅出Excel VBA
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3.2 赋值操作——等号的主要用途

所谓修改单元格中的内容,就是让单元格中的内容等于某个数值(或文字等)。因此,VBA程序就使用等号“=”来实现这个功能。比如Cells(2,3)=5这句代码,翻译为自然语言就是“让第2行第3列单元格的内容等于5”。

这种操作在VBA语言中被称为“赋值操作”,也就是将等号右边的值赋予等号左边的元素。当计算机执行到赋值操作的语句时,会首先计算等号右边的部分,得到一个确切的结果后再把这个结果赋值给等号左边的元素。比如对于 Cells(2,3)=5+3 这个语句,计算机会首先处理等号右边的“5+3”,待计算出最终结果“8”后,再将其赋值给等号左边的Cells属性,让C2单元格的内容变成“8”。

对于初学程序设计的读者来说,理解“赋值”的含义,以及赋值语句“先右后左”的执行过程十分重要。否则,如果将等号误解为“等式”的意思,会很容易对类似下面的代码感到困惑。

如果将等号理解为数学中的“等式”符号,那么“Cells(2,3)=Cells(2,3)+1”永远无法成立。但是在VBA程序中,等号是赋值的标识,所以根据前面的描述,计算机会先计算等号右边表达式的结果,也就是C2单元格当前数值与数字1的和。假如在运行程序前C2单元格的数值是5,那么等号右边的最终计算结果就是 5+1,也就是6。接下来,计算机会将等号右边的最终结果赋值给等号左边的元素,也就是将6赋给C2单元格,于是C2单元格的内容变为6,实现了“自动增一”的效果。

换言之,虽然等号左右两边的“Cells(2,3)”看上去完全相同,但其实计算机用到它们的时间及目的都是不同的。等号右边的Cells(2,3)会先被使用,从该单元格中读取当前数值以便计算最终结果;而等号左边的Cells(2,3)则要到最后才被使用,将该单元格内容修改为前述结果。

读者可以将这段代码输入VBE中,并运行这个程序(注意:在单击“运行”按钮前,先用鼠标单击Example内的任意位置),以观察C2单元格的变化——每运行一次Example,C2单元格的数字就会自动增加1。