学习微软Excel_2002_VBA_编程和XML_ASP技术-2
- 格式:pdf
- 大小:272.06 KB
- 文档页数:43
第二章 VBA 第一步
作者:Julitta Korol 翻译:Tiger Chen Nov 28’2004
语言学习是一个长期的活动,在此过程中,你会经历不同的阶段,由生疏到熟悉。学习VBA编程也是一样的,没有捷径。要想精通VBA,你必须从一个初级阶段起步(第二至四章)。只有当你对VBA后面的一些基本的东西有了很好的理解之后,才能提高到中级阶段(第五至七章)和高级阶段(第八至十七章)。但是,重要的事情先来。在你能够用VBA自由自在地控制Excel之前,你需要获得一些你的术语和语法。在VB里,如何表达这些?“在工作簿里添加一个新工作表”,“删除单元格A5的内容”,“将单元格A1的公式复制到单元格B1”?你也许知道这些单个的词语,然而,你怎么知道如何将它们正确地组合在一起,Excel才能执行这些任务?你将在本章中学习VBA的术语和规则。
了解指令,模块和过程
在第一章,你学习到了Excel宏录制器创建的一系列指令是和你实际进行的操作完全等同的。这些指令自动地放在工作簿里一个叫做“模块”的表里。Excel将模块储存在模块文件夹里,这个文件夹在当前工作簿,新工作簿或者个人宏工作簿里面。你必须激活VB编辑器窗口,并且双击工程浏览器里的模块文件夹才能查看到这些模块。当模块表在代码窗口里打开了后,你才能最后分析你的过程代码。
所有录制的指令都包括在“过程”里面。过程里面的每一行都是一个“指令”。指令的类型有很多中,例如,关键词,运算符,或者其它过程的调用。“关键词”代表VB中的一个特殊的意义。在第一章中,你学习了最常见的VBA关键词——Sub 和End Sub,它们表示一个过程的开始和结束。关键词默认地显示为蓝色。你不要将这些术语做其它的目的,因为关键词已经被VB保护了。
除了关键词,VB指令里还可以有运算符。运算符有四种类型:算术运算,字符串连接,逻辑运算和比较运算。“运算符”允许你将某些值结合起来。例如,减号运算符(/)可以用来计算总数的百分比。本书中,你有很多机会看到如何在VBA过程中使用运算符。
VB指令的另外一种类型是过程调用。过程调用让你快速地跳到其它过程并且执行其它指令。是不是很难想象?让我们看一下你在第一章中录制的宏WhatsInACell。假设你也需要包含同一模块中宏FormulasOnOff中的一些语句。怎么做呢?你可以复制需要的代码行,再粘贴过去。然而,有一种更简单快速的方法。你可以调用这个过程,而不需要在两个过程中复制。例如,你想VB在遇到指令MsgBox "所有操作都已完成"之前执行宏FormulasOnOff里面的指令,只要添加下面一句代码就行:
FormulasOnOff
当VB到达这一行,它就会立即跳到FormulasOnOff过程并且执行它的代码。之后,它会回到宏WhatsInACell去执行剩下的代码,遇到关键词End Sub时则停止。
在你尝试这个例子之前,你必须学会如何给VBA过程和模块命名,已经如何调用不同工程里的过程。
VBA工程命名
工程是一套Excel对象,模块,窗体和引用。除了VBAProject这个位于工程浏览器中工作簿名称之前默认名称,每个工程需要一个独特的名称。我们来给VBAProject (Chap01.xls) 和 VBAProject (Personal.xls)命名:
1.启动Excel,打开Chap01.xls,这里储存了宏WhatsInACell代码。你录制了宏FormulasOnOff的个人宏工作
簿会自动开启
2.切换到VB编辑器窗口
3.选择VBAProject (Chap01.xls)
4.双击属性窗口里的名称属性,这个操作选中了默认的工程名称VBAProject
5.输入“FirstSteps”作为该VBA工程的名称,回车。注意,工程浏览器现在显示的是名称是FirstSteps
(Chap01.xls)
6.在工程浏览窗口选择VBAProject (Personal.xls)
7.双击属性里的名称属性
8.输入“Personal”作为它的名称,回车
技巧2-1 避免名称冲突
为了避免VBA工程之间的命名冲突,请给你的工程独特的名称。你可以使用下述方法之一来更改工程名称:
§在工程浏览器窗口,选择工程名称,双击属性窗口里的名称属性,再输入新的名称
§在工程浏览器窗口,在工程名称上单击右键,并且选择“工程名称属性”。出现如图2-1显示的工程属性对话框,在工程名称文本框里面输入新的名称
图2-1 工程属性窗口可以用来更改当前被选中的工程名称和描述
模块重命名
当你录制宏或者创建新的过程时,VB会创建一个模块文件夹来储存你的VBA 代码。第一个文件夹叫“模块1”,第二个叫“模块2”,等等。你打开一个新的工作簿并且创建VBA工程时,新VBA工程里的模块文件夹又会命名为“模块1”,“模块2”,等等。模块拥有相同的名称不但对你,而且对VB造成很大混淆,因为,它要在一个打开许多工程的环境中执行你的宏或工程。
为了避免模块混淆,给FirstSteps (Chap01.xls) 工程和 Personal (Personal.xls) 工程里的“模块1”重新命名:
1.在工程浏览器窗口,选择FirstSteps (Chap01.xls)工程,并且选择“模块1”
2.双击属性窗口里的名称属性,这个动作选中了模块的默认名称“模块1”
3.输入“WorksheetFormatting”作为模块1的名称,并且回车。注意,工程浏览器窗口现在显示的模块名称是
“WorksheetFormatting”
4.在工程浏览器窗口选择Personal (Personal.xls)
5.双击属性窗口里的名称属性
6.输入“Switches”作为模块1的名称,回车