HI,大家好,我是星光。
这篇给大家聊一下编写VBA代码有哪些注意事项。
不过需要提前说明的是,由于大家现在也没啥编程经验,以下内容有一部分可能很难理解,那就不必理解,知道有那么回事就OK。这就好比小学生被要求尊师重教爱国守法,他也不懂为什么,他也不会问,但他必须得知道,不然就成某地废青了不是?
1>名称问题
名称包含了过程名称和后面咱们会讲到的变量名称。名称要符合规则,上面咱们也讲了过程名称的相关规则;此外,名称起的尽量有意义些,这样可以保证代码的可读性,便于自己和他人理解代码。
划重点:如果你是我知识星球的学员,这一点请务必遵守,不然批改您老人家的VBA作业实在是一件非常容易掉头发的事——觉悟吧,少年,事到如今,只要一扯到头发,你就应该明白问题的严重程度了!!
拿过程名称来说,指的是用一到多个词简化说明代码的功能;最好在过程前面,或过程名称后面增加详细的注释(什么是注释?我待会就给你讲)至于变量名称……这个规则稍微多些,就放到变量章节再说吧。VBA代码使用缩进的形式表示代码块之间的层次关系,同一层次的代码应该保持相同的左边距,不同层次的代码需要向右缩进指定距离,这个距离通常保持系统默认的4个空格的宽度就可以了。依次单击【菜单】→【工具】→【选项】,打开选项对话框,切换到【编辑器】选项卡,选中【自动缩进】复选框,编辑代码时按一次Tab键,即可缩进指定的Tab宽度(默认为4个空格)。你问我什么是层次?层次可以简单的理解为代码的上下级隶属关系。我举一个例子(不要怀疑,我的梦想就是举例世界冠军)在上图所示的代码中。Sub和End Sub属于第1层级,不必缩进;接下来声明变量语句和For循环语句隶属于Sub,属于不同层次,因此向右缩进一个Tab键。IF语句在For循环语句内部,隶属于For,因此需要再次向右缩进一个Tab键……最后的MsgBox语句不在For循环语句内部,它和For是平级关系,只隶属于Sub语句,于是只需要按一次Tab键。需要说明的是,从VBA语法来讲,缩进不是必须的,即便不缩进代码也可以正常运行,但这样的代码很难阅读和维护。不缩进的代码只好比下图所示神医的手迹——千里快哉风,他娘的这是什么鬼画符。为代码添加注释应该成为VBA初学者编写代码的好习惯。这样做有两个好处,一个是方便自己和他人阅读代码,可以比较快速的明白代码的含义、编写思路和代码的功能。很多人写了一段代码,过几天再看,完全不知道自己当初写那代码是什么鬼;这多半是没有添加注释的缘故——不过相比于第二个好处,这个好处其实是次要的。第二个好处是为代码添加准确而详细的注释能够帮助你梳理代码的逻辑关系,加深对相关代码功能的认知和记忆;这相当于你为自己的代码做了一次深刻的理解笔记;相信我,对于VBA初学者而言,没有什么比这更实惠的了。……注释分为两种,一种是咱们前面讲过的为过程整体添加注释,说明过程的功能和编程思路,常写在过程的上部或过程名称的后面。一种是为个别语句添加注释,常写在相关语句的后面。如果语句偏长,也可以写在代码的上或下。在添加注释的位置,先输入一个半角撇号,再输入注释内容就可以了。注释内容不会被系统执行,同时会被默认标注为绿色字体,这样会方便用户把注释和代码区分开来。除了手工输入半角撇号制作注释外,系统还在工具栏中为用户提供了【注释块】和【解除注释块】功能。【注释块】可以将整段代码设置为注释,常用于代码调试,或将部分代码转为备用状态。【解除注释块】顾名思义,可以将设置为注释的整段代码解除注释状态。当一行代码过长时,比如上面那段你让Excel释放彩虹屁的代码,需要拖动滚动条才能够看完整,这很不方便代码的编辑和阅读。此时我们就可以将代码强制换行。在需要换行的地方输入一个空格,再输入一个短下划线_,然后按回车键,将后面的代码移到下一行,最后再按一下Tab键,使换行的部分向右缩进,表示该行代码隶属于上一行。有个姓罗的老师几百年前说过,天下大势合久必分,分久必合,既然有代码换行就有代码并行——也就是将多行代码合并为一行。如果需要将多行语句写在同一行,不同语句中间用冒号分隔即可。如下图所示。