练习小课堂

学会编写Sub过程后,你有什么想要完成的操作?试着编写一个过程,让程序替你完成。

img019 参考答案

答案参考书中的任意一个Sub过程。

并不是只有模块对象才能保存过程,Excel对象(或窗体对象)也能保存过程,如图3-42所示。

img225

图3-42 Excel类模块

为了避免发生错误,建议将Sub过程和Function过程保存模块对象中。

和一个文件夹可以保存多个文件一样,一个模块也可以保存多个过程。如果需要,你也可以像给文件分类那样,建不同的模块来保存功能不同的过程。

img062 声明Sub过程,规范的语句

img226

尽管一个Sub过程可以包含任意多的代码,但就像做20桌饭菜,为了更有效、更有条理地把任务完成,总是需要有明确的分工:张三洗菜,负责完成洗菜的过程,李四烧饭,负责烧饭的过程,最后把大家的过程合起来就完成了整个任务。

分工后,哪个过程出现问题,比如菜没洗干净,就直接去找张三。

编程也一样,当需要处理的任务比较复杂时,可以用多个小过程去完成,每个过程负责完成一个特定的、较为简单的目的,最后通过执行这些小过程来完成最终目的。

3.8.3 从另一个过程执行过程

下面是在3.7.1小节中编写的过程:

img227

如果想在另一个过程里使用代码执行它,常用的方法有如下三种。

方法一:输入过程名称以及参数,参数用逗号隔开。

img228

方法二:在过程名称以及参数前使用Call关键字,参数用括号括起来,并用逗号隔开。

img229

方法三:利用Application对象的Run方法,语句形式如下。

img103a

img230

3.8.4 过程的作用域

过程按作用域的不同分为公共过程和私有过程。

img062 命公共过程

公共厕所、公共汽车……戴着“公共”的帽子,意味着这个东西大家都可以使用。

img231

img062 私有过程

家里买了一辆私家车,肯定不会让街上的每个人都坐着它去上班。哪辆是公共汽车,哪辆是私家车,为了区别开来,要给它贴上特殊的标识。

img232

如果想把模块中的所有过程全部声明为私有过程(包括已经声明为公共过程的过程),只需在模块中第一个过程之前写上“Option Private Module”即可,如图3-42所示。

img233

图3-43 将模块里所有过程声明为私有过程

img062 谁有资格调用私有过程

如果一个过程被声明为私有过程,只有这个模块里的过程才能调用它。如果想让其他模块中的过程也能调用,应该把它声明为公共过程。

私有过程不会在【宏】对话框里显示,如图3-44所示。

img234

图3-44 私有过程不在宏对话框里显示