
本文于2023年10月2日首发于本人同名公众号:Excel活学活用(VBA编程实战),更多文章案例请搜索关注!
内容提要
WorkBook对象用法
大家好,我是冷水泡茶,今天我们一起来了解一下WorkBook对象。
可能初涉VBA的朋友有点不太理解什么是对象,那么我们就先了解一下VBA的几个重要概念,对象、属性、方法、事件。
1、对象:我们可以操作的目标,比如工作簿、工作表、单元格、用户窗体、控件等等。
2、属性:对象的特征或状态。比如工作表的Name,单元格的颜色等。
3、方法:对象可以执行的动作,比如工作簿的Save。
4、事件:对象可以响应的动作或状态变化,比如工作表的Change事件,命令按钮的Click事件。如果某事件发生,对象会做出哪些反应?实际上也就是执行指定的代码。
以上概念,稍微了解即可。我们举个现实生活中的例子,比如我们住的房子,可以当作一个对象,房子的面积大小就是它的属性,关门上锁可以看做一种方法。下面进入正题:
一、什么是WorkBook对象?
WorkBook,中文名称叫“工作簿”,简单理解,也就是一个Excel文档。
二、常用的属性、方法
这两个放在一起说,我就不用考虑某个代码使用的到底是属性还是方法。我们这里仅介绍常用的,或者说我们使用过的,没使用过的就不乱讲了,也没有必要说得那么细,若有需要,我们再去研究也不迟,反正资源都是触手可及的。
1、定义一个WorkBook对象
Dim wb As Workbook
这里的wb,就是一个WorkBook对象,wb只是一个代号,用什么其他字符串都可以,只要符合VBA的命名规范。但我们建议还是要定义一个有一定意义的对象、变量名称,并且尽量保持一惯性。这样做的好处是显而易见的,一是加快你写代码的速度,二是复制代码的时候,改动的地方会比较少,有时候甚至都不用改。
2、输入
我们接下来写代码的时候,输入“wb.”(注意后面的小点点),后面会给出很多属性、方法的提示,记得的,我们直接输入,只记得前面几个字母的,我们就输入几个字母,在显示的列表中去寻找。

3、Add:新建工作簿
Set wb = Application.Workbooks.Add
4、Activate:激活工作簿,使其成为活动工作簿
wb.Activate
5、Name:获取或设置工作簿的名称;FullName:完整名称
strName=wb.Name strName=wb.FullName
6、Sheets.Add:插入工作表,并放在最后
Set ws = wb.Sheets.Add(After:=wb.Sheets(wb.Sheets.Count))
7、Saveas:另存为
'SaveAs方法,屏蔽复盖文件提示Application.DisplayAlerts = Falsewb.SaveAs fileName Application.DisplayAlerts = True
8、Sheets:返回工作簿中的所有工作表的集合;循环工作簿中所有工作表的方法
For Each ws In wb.Sheets ......Next
9、Save:保存工作簿
wb.Save
10、Close:关闭工作簿
wb.Close savechanges:=False
11、Open:打开另一个工作簿
Set wb = Workbooks.Open(path)
12、PrintOut:打印工作簿中所有工作表(有参数可选)
13、Protect::保护工作簿,可选择设置密码。
14、Unprotect:取消保护工作簿。
三、事件
工作簿的事件也很多,在ThisWorkbook对象中。

我们点中所需要的事件名称,相应过程的基本代码就会自动填充到代码框。

我们举两个经常用到的例子:
1、BeforeClose:当工作簿即将关闭之前触发,执行相应代码。
Private Sub Workbook_BeforeClose(Cancel As Boolean) Me.Save MsgBox "你关闭了文件:" & Chr(10) & Me.Name & Chr(10) & "欢迎下次再来!"End Sub
2、Open事件:当工作簿被打开时触发,执行相应代码。
Private Sub Workbook_Open() MsgBox "欢迎打开:" & Chr(10) & ThisWorkbook.NameEnd Sub
四、总结
对象的属性、方法、事件,是非常重要的,建议想学习VBA的朋友多多了解并运用。
另外,为了更好地理解WorkBook对象的有关内容,我写了一段大杂烩代码,基本包括了上述内容,由于篇幅的关系,我放到第二条文章。
好,今天就到这吧。
~~~~~~End~~~~~~
喜欢就点个赞、点在看、留言评论、分享一下呗!感谢支持!