codecamp

VBA工作簿和工作表操作方法

既然你已经涉足操作工作表单元格和单元格区域,是时候上一个台阶,学习如何控制单个工作簿,以及整个工作簿集合了。如果你不知道如何打开一个新工作簿的话,你就不知道准备一个新的电子表格了;如果你不知道如何关闭工作簿,你就不知道如何将工作簿从屏幕上消除。这些重要的任务由两个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编辑器窗口里面了。


操作窗口(Windows)

当在好几个Excel工作簿上工作,并且需要比较或者巩固数据,或当你想要看同一个工作表里的不同部分时,你很可能要用到Excel“窗口”菜单里的选项:新建窗口和重排窗口。我们来看看如何通过VBA来安排窗口。

操作窗口

当你在屏幕上显示窗口时,你可以决定如何排列它们。Arrange方法有许多自变量,让你如何放置窗口的自变量称为ArrangeStyle(排列方式)。如果你忽略ArrangeStyle自变量,Excel将平铺所有窗口。

Arrange方法

除了使用常数名称外,你也可以使用上面列出的等价值。要将所有窗口层叠起来,写下面的指令就可:

Windows.Arrange ArrangeStyle:=xlArrangeStyleCascade

或者更简单点:

Windows.Arrange ArrangeStyle:=7

管理Excel应用程序

在本章的开始部分,你学习了对象是组织在一个叫对象模型的专门结构。在应用程序的对象模型的最上面就是应用程序它本身。通过控制Application对象,你可以进行很多操作,例如将屏幕显示效果保存为当日最后显示的效果,或者退出该应用程序。你知道,Excel允许你使用“文件”菜单里的选项“保存工作区”来保存屏幕设定。在VBA里可以很容易地完成保存工作区的工作:

Application.SaveWorkspace "Project"

上面的指令将屏幕设置保存在名叫“Project”的工作区里。下次你要在相同的文件和窗口排列时,只要打开“Project”文件,Excel就会打开正确的文件和恢复你要的屏幕。

获取当前应用程序名称


VBA单元格格式
什么是VBA变量
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }