既然你已经涉足操作工作表单元格和单元格区域,是时候上一个台阶,学习如何控制单个工作簿,以及整个工作簿集合了。如果你不知道如何打开一个新工作簿的话,你就不知道准备一个新的电子表格了;如果你不知道如何关闭工作簿,你就不知道如何将工作簿从屏幕上消除。这些重要的任务由两个VBA方法处理:Add和Close。下面的练习将给你必要的如何操作工作簿和工作表的语言技巧。
如果你运行了最后一个例子,那么现在你所有的工作簿都已经关闭了。在你要在工作表上使用前,请确保先打开一个新工作簿。当你除了单个工作表时,你必须知道如何在工作簿里添加新的工作表,知道如何选择一个或一组工作表,知道如何命名、复制、移动和删除工作表。在VB里,每个任务都需要一个专门的方法或属性。
注意Select方法和Activate方法之间的区别:
当只要一个工作表被选择时,Select和Activate方法可以互换使用
如果你要选择一组工作表,Activate方法将让你决定你选中的工作表中哪个要激活。我们知道,同时只能有一个工作表被激活。
技巧:Sheets(译者简称为“表”)而不是Worksheets(简称为“工作表”)
除了工作表之外,工作簿集合里还包括图表。使用Add方法在工作簿里添加一个新图表:
Charts.Add
统计图表数目,使用:
?Charts.Count
在Excel 97之前的版本中,工作簿集合里包括两种额外的表:DialogSheets和Modules。Dialogs已经被更亲切的用户窗体(UserForms)所取代了。从Excel 97开始,对话框和模块都被创建在VB编辑器窗口里面了。
当在好几个Excel工作簿上工作,并且需要比较或者巩固数据,或当你想要看同一个工作表里的不同部分时,你很可能要用到Excel“窗口”菜单里的选项:新建窗口和重排窗口。我们来看看如何通过VBA来安排窗口。
当你在屏幕上显示窗口时,你可以决定如何排列它们。Arrange方法有许多自变量,让你如何放置窗口的自变量称为ArrangeStyle(排列方式)。如果你忽略ArrangeStyle自变量,Excel将平铺所有窗口。
除了使用常数名称外,你也可以使用上面列出的等价值。要将所有窗口层叠起来,写下面的指令就可:
Windows.Arrange ArrangeStyle:=xlArrangeStyleCascade
或者更简单点:
Windows.Arrange ArrangeStyle:=7
在本章的开始部分,你学习了对象是组织在一个叫对象模型的专门结构。在应用程序的对象模型的最上面就是应用程序它本身。通过控制Application对象,你可以进行很多操作,例如将屏幕显示效果保存为当日最后显示的效果,或者退出该应用程序。你知道,Excel允许你使用“文件”菜单里的选项“保存工作区”来保存屏幕设定。在VBA里可以很容易地完成保存工作区的工作:
Application.SaveWorkspace "Project"
上面的指令将屏幕设置保存在名叫“Project”的工作区里。下次你要在相同的文件和窗口排列时,只要打开“Project”文件,Excel就会打开正确的文件和恢复你要的屏幕。