excel_vba_编程教程(完整版)-第14部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
“确定”关闭对话框。注意,含有文本的单元格显示了不同的颜色。
步骤1到7教你定位到文本单元格,要定位数字单元格,请按如下操作:
8. 选取一个单元格
9. 选择“编辑”-“定位”
10. 在“定位”对话框中,点击“特殊”按钮
11. 在“特殊”对话框中,勾选“常数”——勾选“数字”,同时去除“文本”,“逻辑值”和“错
误值”的勾选
12. 按“确定”返回工作表。注意,这时含有数字的单元格已经被选中了。小心,不要改变选中
区域,直到你在下一步做一些必要的格式设置
16
… 页面 33…
13. 对选中区域。选择“格式”-“单元格”
14. 在单元格格式设置对话框,选择“字体”-设置字体颜色为“暗蓝色”。然后点击“确定”关
闭对话框。注意,含有数字的单元格显示了不同的颜色。
步骤8到14教你定位到数字单元格,要定位公式单元格,请按如下操作:
15. 选取一个单元格
16. 选择“编辑”-“定位”
17. 在“定位”对话框中,点击“特殊”按钮
18. 在“特殊”对话框中,勾选“公式”
19. 按“确定”返回工作表。注意,这时含有公式计算结果的单元格已经被选中了。小心,不要
改变选中区域,直到你在下一步做一些必要的格式设置
20. 对选中区域。选择“格式”-“单元格”
21. 在单元格格式设置对话框,选择“字体”-设置字体为“粗体”,颜色为“红色”。然后点击
“确定”关闭对话框。注意,含有公式的单元格显示了不同的颜色。
步骤15到21教你定位到公式单元格。你可以在工作表中加上图例,以便容易理解。
22. 选取区域A1:A3,选择“插入”-“行”
23. 选择单元格A1
24. 选择“格式”-“单元格”,并且在“填充色”页点击“紫色”,点击“确定”返回工作表
25. 选择B1,输入“文本”
26. 选择单元格A2
27. 选择“格式”-“单元格”,并且点击“暗蓝色”,“确定”返回
28. 选择B2,输入“数字”
29. 选择A3
30. 选择“格式”-“单元格”,点击“红色”,“确定”返回
31. 选择B3,输入“公式”
32. 选择A1
完成步骤22到32后,A1:A3单元格会显示一个简单的颜色图例,如图1-1所示。
正如你所看到的,不管工作表显示的任务多么简单,你却可能需要很多步骤来达到预期效果。创建
一个可以重复你刚才操作的宏命令,真的很省时间,特别是当你需要重复这个相同的工作到很多工
作表中去。
4 录制宏
既然你已经知道了你需要做哪些操作,是时候打开你的宏录制器来创建你的宏了。在你依照下面的
录制步骤之前,请确保你已经清除了刚才例子里的格式。按下Ctrl+A以选中整个工作表,选择“编
辑”-“清除”-“格式”选择A1:A3并且选择“编辑”-“删除”。在“删除”对话框,选择“整
行”然后点击“确定”。
依照以下步骤来创建你的第一个宏命令:
1. 选择一个单元格
录制宏之前,你应该想好是否要录制当前单元格的位置。如果你需要宏总是从一个特定的
位置开始,那么先打开宏录制器再选择你想要宏开始选中的特定位置。如果当前单元格的
位置无关紧要,那么先选择一个单元格,然后才打开宏录制器。
选择“工具”-“宏”-“录制新宏”。出现一个录制宏对话框。
图1-2 当你录制新宏的时候,必须有名字。你也可以给它设置一个快捷键,储存地方以及描述。
17
… 页面 34…
2. 给宏取个名字“WhatsInACell”
技巧1-2:宏命名
如果你忘记给宏命名,Excel 会给出一个默认的宏名,例如:Macro1,Macro2,等等。宏名可以包
含字母,数字和下划线,但是第一个字必须是字母(译者:中文亦可,建议用英文)。例如:Report1
是有效的宏名,然而1Report则是非法的。宏名里不能含有空格。如果你隔开宏名中的每个词,可
以使用下划线。例如:WhatsInACell,改为Whats_In_A_Cell。
3. 在宏的存贮位置里,选择“当前工作簿”
技巧1-3:保存宏
Excel 让你可以将宏保存在三个地方:
个人宏工作簿——如果你将宏保存在这里,你每次使用Excel 的时候都可以使用这个宏。个人宏工
作簿在XLStart文件夹中。如果这个工作簿不存在,那么当你第一次使用这个选项的时候,Excel
会自动生成这个工作簿。
新工作簿——Excel将宏放在一个新工作簿里。
当前工作簿——宏将被保存在你正在使用的工作簿里面。
4. 在描述框里输入:显示单元格里潜在的内容:文本,数字,公式
5. 点击“确定”关闭宏录制对话框,并开始录制。这时,出现了“停止录制”工具栏。Excel下
面的状态栏显示“准备录制”
图1-3 停止录制工具栏提供按钮来停止录制,以及让Excel如何在录制宏的时候处理单元格地址
技巧1-4:单元格地址:相对或绝对?
绝对——如果在执行宏命令的过程中,无论哪些单元格被选中了,你都希望宏在特定的单元格执行
这些录制的操作,那么使用绝对单元格地址。绝对单元格引用具有如下形式:A1,C5等。Excel
宏录制器默认使用绝对引用。在录制前,确保停止录制工具栏上的第二个按钮没有被按下去。当鼠
标指向这个按钮,工具提示“相对引用”。
相对——如果你想要宏可以用在任何区域,就打开相对引用。相对引用具有如下形式:A1,C5等。
在录制前,确保停止录制工具栏上的第二个按钮已经被按下去了。记住,Excel 将会继续使用相对
引用,直到退出Excel或者再次点击相对引用按钮。在录制宏的过程中,你可以使用这两种引用方
法。例如:你可以选择一个特定单元格(如A4),做一个操作,然后选择另外一个相对于当前位
置的单元格(如C9,他在当前单元格A4往下5行和向右2列的位置)。当你复制单元格时,相对引
用会自动调整引用,而绝对引用则不会。
6. 从新进行刚才你手动完成的那些操作(参见“写宏之前的计划“)
录制宏的时候,只有当你按下了回车键或者点击了确定之后,你的操作才会被录制。如果
你按下了Esc键或者点击了取消,宏录制器不会录制任何操作。
7. 完成所有操作后,点击停止录制工具栏上的“停止录制”按钮,或者选择“工具”-“宏”
-“停止录制”
5 运行宏
你创建了一个宏命令后,至少要运行一次以确保它运行正确。在本章的后面,你将学到好几种运行
宏的方法,不过,现在,使用菜单命令。要看到你的成果,确保清除了例子的格式。按下Ctrl+A
以选中整个工作表,选择“编辑”-“清除”-“格式”选择A1:A3并且选择“编辑”-“删除”。
在“删除”对话框,选择“整行”然后点击“确定”。稍后,你将在另外一个宏里面录制清除工作
表格式的步骤。
1. 打开任何包含文本,数字和公式的工作表
2. 选择“工具”-“宏”-“运行宏”来打开宏对话框
3. 点击你要运行的宏的名称(参见图1-4)
4. 选择“运行”,执行宏
18
… 页面 35…
图1-4 在宏对话框,你可以选择一个宏,运行,编辑或者删除它
你也许经常会发现录制的宏不会按你预期的和你第一次操作那么运行。也许在录制宏的时候,你选
择了错误的字体,或者忘记改变单元格颜色,或者你临时发现最好加上一个步骤。不必惊慌。Excel
允许你修改代码,而不会强迫你重新录制那些单调的操作。
6 修改宏代码
你必须知道你的宏代码放在哪里,你才能找到并修改它。回想你打开宏录制器的时候,你选择了“当
前工作簿”作为存储地址。最容易找到宏的方法是打开宏对话框,如图1-4所示。
1. 选择“工具”-“宏”
2. 选择宏名(本例中为WhatsInACell)
3. 点击“编辑”按钮
Excel 打开一个专门的窗口,叫做Visual Basic Editor (VBE)如图1-5所示。利用快捷键Alt+F11
可快速地在Excel表格界面和代码窗口切换。选择VBE菜单上的关闭选项可以关闭VBA代码窗口,返
回到电子表格界面。
代码窗口暂时看上去有些令人迷惑,不必担心。只要你开始录制宏,以及尝试写一些代码,你终将
这个屏幕所有的组件。现在,看一下代码窗口的菜单和工具栏。这两个工具栏和Excel 窗口的菜单
完全不同。代码窗口的菜单和工具包含一些编程和测试代码所需要的工具。只要你彻底地学习本书
的每一章,你就会成为使用这些工具的专家。
图1-5 VBE窗口是编辑宏命令和书写新的VBA代码的地方
VBE窗口的主要部分是多个窗口的集合界面,这些窗口在你创建和测试VBA过程的时候是及其有用
19
… 页面 36…
的。图1-5显示了三个集合在一起的窗口:工程窗口,属性窗口和代码窗口。工程窗口显示一个开
启的模块文件夹,在这里,模块1被选中了。Excel 录制你在工作表里的操作叫做模块1,模块2,
等等。在本书接下来的章节里,你将利用模块来编写你自己的过程代码。模块类似于Word中的一个
空白文档。储存每个单独模块的文件夹称为“模块”
技巧1-5:宏还是过程?
宏是通过内置宏录制器录制的,或者在VB编辑器里手动输入的一系列指令或函数。从Excel 5。0开
始,“宏”经常被“过程”这个更广的概念所代替。尽管这两个词可以交替互换使用,但是,许多
编程者更喜欢“过程”。虽然宏可以让你模仿键盘操作,真正的过程则还可以执行一些不能通过鼠
标,键盘或者菜单来做的操作。换句话说,过程是一个更复杂的宏,它结合了传统编程语言的言语
结构。
代码窗口(参见图1-5)显示了下列由宏录制器录制的代码:
Sub WhatsInACell()
'
' WhatsInACell Macro
' Macro recorded 5/31/2002 by Julitta Korol
' Indicates the contents of the underlying cells: text; numbers; formulas。
'
Selection。SpecialCells(xlCellTypeConstants; 2)。Select
With Selection。Font
。Name = 〃Arial〃
。FontStyle = 〃Bold〃
。Size = 10
。Strikethrough = False
。Superscript = False
。Subscript = False
。OutlineFont = False
。Shadow = False
。Underline = xlUnderlineStyleNone
lorIndex = 13
End With
Range(〃B6〃)。Select
Selection。SpecialCells(xlCellTypeConstants; 1)。Select
With Selection。Font
。Name = 〃Arial〃
。FontStyle = 〃Regular〃
。Size = 10
。Strikethrough = False
。Superscript = False
。Subscript = False
。OutlineFont = False
。Shadow = False
。Underline = xlUnderlineStyleNone
lorIndex = 11
End With
Range(〃C6〃)。Select