按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
图2-15 快速信息提供函数参数清单,也可以是常数值和VBA语句语法
16 自动完成关键字
加速在代码窗口编写VBA程序的另一种方法是使用“自动完成关键字”功能。当你输入一个关键字
的前几个字母,然后按下Ctrl+空格键,或者点击编辑工具条上的“自动完成关键字”按钮,VB会
帮你输入这个关键字的剩余字母,节约你的时间。例如,在代码窗口里输入关键字“Application”
的前四个字母,并且按下Ctrl+空格键:
Appl
52
… 页面 69…
VB将会完成剩余的字母,在Appl地方,你将看到整个关键字Application。如果有好几个关键字具
有相同的开头字母,当你按下Ctrl+空格键后,VB会显示一个弹出菜单,列出所有关键字。测试这
个例子,可以输入关键字Application的前三个字母,按工具条上的自动完成关键字按钮,然后在
弹出菜单上选取合适的关键字。
17 缩进/凸出
也许你已经看到,在选项对话框的编辑器页上有许多设置你可以打开以使用代码窗口许多可用的自
动功能。如果勾选了“自动缩进”选项,你就可以自动缩进所选的代码行,缩进的量为“Tab宽度”
文本框里的数字。默认的自动缩进量是4个字母,你也可以在文本框里输入一个新的数字来改变Tab
宽度。你为什么需要在代码里使用缩进?缩进可以使你的代码更容易阅读和理解。特别是输入一些
做决定或重复性工作的代码行时,更建议使用缩进。你将在第五和第六章中学习如何创建这种类型
的VB指令。现在,我们来练习使用缩进和凸出代码行,用第一章里的宏WhatsInACell作为例子:
1。 在工程浏览器窗口,选择FirstSteps(Chap01。xls)工程,并且激活含有WhatsInACell代码的
WorksheetFormatting模块
2。 选择开始为关键字With和结束为End With的一段代码
3。 点击编辑工具条上的缩进按钮,或者按键盘上的Tab键(译者:按Tab键需要将光标放在行首,
而非选中指令)
4。 选中的指令会向右移动4个字母的位置,如果使用了Tab宽度的默认设置。
5。 点击编辑工具条上的“凸出”按钮,或者按Shift+Tab将选中的指令行返回原来的位置。
缩进和凸出同样可以在编辑菜单里找到。
18 设置注释块/解除注释块
在第一章中,你学习了一行代码前面加一个引号表示注释。注释不但使代码更容易理解,而且它在
VBA过程的测试和处理问题中都是很有用的。例如,你执行一个过程时,它可能和期望的运行不一
致,对于那些可能产生问题的代码行,你现在想略过它们,但是以后可能还需要用到它们,你就可
以在它们前面加一个引号注释掉它们,而不必删除它们。对大多数人来说,需要注释掉一行代码的
话,只有在它前面敲入一个引号就可以了,但是,如果要注释掉整块代码,使用“编辑”工具条上
的“设置注释块”和“解除注释块”按钮则是很方便的。要注释掉几行代码,只要选中这些代码行
并且点击“设置注释块”按钮。点击“解除注释块”按钮,将注释掉的代码恢复到代码里。
如果你没有选中文本,就点击了“设置注释块”按钮,只有在光标所在的代码行前面加入引号。
19 使用对象浏览器
如果你想要在VBA众多的组件和功能中自由切换,那么使用对象浏览器。这个专门的内置工具在VB
编辑器窗口是可用的。使用下面任何一种方法都可以访问对象浏览器:
53
… 页面 70…
图2-16 对象浏览器让你在当前VBA工程里可用的所有对象,属性和方法里浏览
对象浏览器让你浏览VBA过程中可用的对象,也可以查看它们的属性,方法和事件。在对象浏览器
的帮助下,你可以在VBA工程的多个过程之间快速移动。
对象浏览器分为三部分(参见图2-16)。窗口的上部显示“工程/库”下拉列表,这里列出了所有
库名称以及当前VBA工程里可用的所有工程名称。库是包含一个应用程序里对象的信息的专门文件。
新的库可以通过“引用”对话框(“工具”-“引用”)来添加。列出了你电脑上安装了的
所有库中的所有对象。当你选择一个叫“Excel”的库时,仅仅能在Excel里执行的对象名称才能被
看到。和Excel库相反,VBA库列出了所有能在VBA里执行的对象名称。
在“工程/库”下拉列表框下面,有一个“搜索”文本框,让你可以快速地在某个库里搜索你的信
息。这个地方会记住你最近搜索的四个项目。在对象浏览器的任何地方单击右键,在快捷菜单上选
择“全字匹配”,你就可以只搜索匹配整个字的内容。对象浏览器上的“搜索结果”(参见图2-16
和2-17)显示符合搜索条件的库,类和成员。当你输入搜索文本并且单击搜索按钮,VB展开对象
浏览器对话框以显示搜索结果。你可以点击“望远镜”按钮右边的“显示/隐藏搜索结果”来显示
或者隐藏搜索结果。
54
… 页面 71…
图2-17 在对象浏览器里搜索答案
类列表框显示所选中的库里面所有可用的对象类,如果你选择VBA工程,列表显示该工程里的对象。
在图2-16里,mandBarboBox 对象类被选中了。当你选中一个类,右边的列表(成员)显示
该类可用的属性,方法和事件。图2-16上显示了类mandBarboBox的一些成员。成员默认地
按字母顺序列出。然而,你可以使用对象浏览器快捷菜单上的“组成员”来组织这些成员列表(属
性,方法或事件)。如果你选择“工程/库”里面的VBA工程,成员列表框列出该工程里的所有过程。
双击该过程名称,就可以进入该过程并检查其代码。如果你选择类“VBA”,你将看到VB内置的函数
和常数。如果你对所选的类或成员需要更多的信息,可以点击对象浏览器窗口上面的问号按钮。对
象浏览器下面的窗口显示所选成员的代码格式。如果你点击代码格式里绿色的连接部分,你将跳到
对象浏览器窗口的所选成员的类或库。代码格式里的代码可以被复制到Windows剪切板并且粘贴到
代码窗口里去。如果对象浏览器和代码窗口都是可见的,你只要选中代码格式里的文本,直接拖曳
到代码窗口就行了。
通过对象浏览器窗口上的横竖分割线,你可以轻易地改变各个窗口的大小。
你已经发现了对象浏览器,你也许在想你如何才能让它帮助你进行VBA编程。假设你在工作表中央
放置了一个文本框,你如何让Excel将这个文本框移动到工作表的左上方?
1。 打开一个新工作表
2。 选择“视图”-“工具栏”,然后点击“绘图”
3。 点击“绘图”上的文本框,在工作表中央画一个文本框,并且随便输入什么文字
4。 选择文本框之外的任意单元格
5。 按下Alt+F11激活VB编辑器窗口,并且选择工程浏览器窗口的Personal (Personal。xls)
6。 选择“插入”-“模块”,增加一个新的模块
7。 在属性窗口,给该模块重命名:Manipulations
8。 选择“视图”-“对象浏览器”,或按F2
9。 在“工程/库”下拉列表框里选择“Excel”类
10。 在搜索框里输入“textbox”并点击搜索按钮。确保你没有在文字间敲入空格。
55
… 页面 72…
图2-18 Excel 在工作表上面的名称框里显示插入的对象名称
图2-19 使用对象浏览器窗口,你可以找到合适的VBA指令来编写你自己的过程
显示的结果表明对象Shapes掌管我们文本框操作(参见图2-19)。从成员列表清单上看,你可以很
快就知道AddTextbox方法就是用来在工作表里添加文本框的方法。代码格式窗口显示了使用该方法
的正确语法。如果你选择AddTextbox方法并且按F1,你将看到关于它的帮助窗口,有更详细的关于
如果使用该方法的信息(参见图2-20)
56
… 页面 73…
图2-20 要获取对象浏览器找到的任何项目详细信息,只要选择整个项目并且按F1就可以了
当你细看AddTextbox方法的自变量和它们在帮助窗口上的解释时,你就可以很快地知道文本框在工
作表中的位置是由Left和Top属性来决定的。你需要做的只是返回代码窗口,编写指令来移动文本
框到工作表的左上方。
11。 关闭对象浏览器和帮助窗口(如果它们还是打开的)
12。 双击Manipulations模块,输入过程MoveTextBox:
Sub MoveTextBox()
With ActiveSheet。Shapes(〃Text box 1〃) ‘Text box 1在中文版本里为“文本框
1”
。Select
。Left = 0
。Top = 0
End With
End Sub
13。 选择“运行”-“运行宏”来测