Excel 2016 VBA入门与应用
上QQ阅读APP看书,第一时间看更新

4.1 编写程序代码的规则

任何一种程序设计语言都有一套完整而严格的编程规定,这种规定给出了一种规范,告诉编程者如何正确地使用程序语言来与计算机进行交流。在开始学习编程之前,需要了解VBA中编写程序代码所要遵守的规则,这样书写的程序代码才能被VBA识别并正确执行。

4.1.1 编写代码必须遵循的原则

VBA程序中的语句是需要计算机执行的具体的指令,它是VBA方法、书写、函数、表达式以及VBA所能识别的符号组合。在编写程序代码时,需要遵守的规则称为语法。在书写程序代码时,必须遵守下面这些基本的规则,这些规则不仅能够保证程序顺利通过调试,而且能够使代码能够被其他程序员看懂,增强程序的可读性。

● VBA程序是不区分大小写的。在输入VBA程序代码时,可以随意使用大小写字母,VBA不区分程序代码中字母的大小写。在完成输入后,VBA会自动将代码中关键字的首字母转换为大写,其余的字母转换为小写。

● 在书写程序代码时,各个关键字之间与关键字和变量名、常量名以及过程名之间必须以空格分隔。

● 要使用缩进格式。在编写程序代码时,为了使程序的结构具有可读性,可以使用缩进格式来表现代码的逻辑结构和嵌套关系。如下面的语句在for循环中包含了if结构,程序在书写时使用了缩进格式。

        Set r = Range("myRange")
        For n = 1 To r.Rows.Count
            If r.Cells(n, 1) = r.Cells(n + 1, 1) Then
              MsgBox "Duplicate data in " & r.Cells(n + 1, 1).Address
            End If
        Next n

4.1.2 语句很长和很短怎么办

在VBA编辑器中输入程序代码时,经常会遇到一行代码很长的情况,这给代码的打印和阅读带来了不便,此时程序就需要换行。在VBA中,要实现程序的换行,可以使用续行符“_”。在使用续行符时,必须要在续行符前添加一个空格将续行符和代码分隔开。如下面这段代码添加了两个续行符将只有一行的语句分成了三行:

        Application.DefaultWebOptions. _
        Fonts(msoCharacterSetEnglishWesternEuropeanOtherLatinScript) _
        .ProportionalFont = "Tahoma"

续行符并不能将语句从任意位置分隔后续行,程序员在键入程序时必须要为续行符选择合适的使用位置,否则续行符不仅不能发挥作用,还会引起错误警告。如对上面的语句进行如下的修改,运行程序时将得到出错提示,如图4-1所示。

图4-1 出错提示

        Application.DefaultWeb _Options.
        Fonts(msoCharacterSetEnglishWesternEuropeanOtherLatinScript) _
        .ProportionalFont = "Tahoma"

使用续行符对语句换行必须注意,续行符的出现不能打断语句的完整性,续行符不能出现在关键字、函数名、过程名或参数名的内部,即不能将上述字符串分列到两行中。通常的做法,是将续行符放置到关键字、函数名或过程名等后面。同时,VBA中允许输入的连续行不能超过24行。

在VBA中,如果遇到多条较短的语句需要书写时,可以将它们写在同一行中。此时,各条语句间应该使用英文的冒号“:”来作为分隔符。这些位于同一行的语句将被认为是独立的语句,在逐行执行时将按照顺序来执行。如下面的语句将定义两个变量,同时为这两个变量赋值,这个赋值语句合并在同一行中书写。

        Dim Count, Number
        Count=5:Number=4

注意:将语句合并到一行中只是为了书写上方便,同时使代码显得简洁易读,并不是将多个语句合并为一条语句,程序运行时同样会分别执行这些语句。