Workbook 对象的属性
在 Excel VBA 中,Workbook 是表示 Excel 工作簿的对象。每个工作簿对象都有一些属性,可以用来获取与该工作簿相关的各种信息或执行特定操作。表格列出了常见的一些属性及其含义。
| Workbook 对象属性 | 返回的值 | 代表的内容 | 
|---|
| ActiveChart | Chart | 返回当前活动的图表对象。如果没有图表活动,则返回 Nothing。 | 
| ActiveSheet | Worksheet | 返回当前活动的工作表对象(即处于顶部的工作表)。 | 
| Application | Application | 返回当前 Excel 应用程序的引用(即打开该工作簿的 Excel 实例)。 | 
| Parent | Application | 返回当前 Excel 应用程序的引用,通常与 Application 属性相同。 | 
| CodeName | String | 返回工作簿代码模块的名称(通常为 ThisWorkbook)。 | 
| CommandBars | Object | 返回一个 CommandBars对象,表示 Microsoft Office Excel 的命令栏。 | 
| FullName | String | 返回工作簿的完整文件名(包括路径)。 | 
| HasPassword | Boolean | 返回一个布尔值,表示工作簿是否有密码保护。 | 
| Names | Object | 返回一个 Collection对象,包含工作簿中的所有范围名称(包括特定于工作表的名称)。 | 
| Password | String | 获取或设置打开工作簿时需要提供的密码。 | 
| Path | String | 返回与工作簿关联的完整路径。 | 
| ProtectStructure | Boolean | 返回一个布尔值,表示工作簿的工作表顺序是否受到保护。 | 
| ProtectWindows | Boolean | 返回一个布尔值,表示工作簿的窗口是否受到保护。 | 
| Saved | Boolean | 返回一个布尔值,表示自上次保存以来是否对工作簿进行了修改。 | 
| Sheets | Object | 返回一个 Collection,表示工作簿中的所有工作表。 | 
| Worksheets | Object | 和 Sheets相同,返回一个Collection,表示工作簿中的所有工作表。 | 
每个属性的解释:
- ActiveChart: 如果当前工作簿中有活动的图表对象,那么此属性将返回该图表。如果没有活动的图表,它将返回 Nothing。
- ActiveSheet: 返回当前活动的工作表对象,即当前可见的、处于最上层的工作表。
- Application: 返回 Application对象,表示 Excel 应用程序本身。它通常表示打开当前工作簿的 Excel 实例。
- Parent: 返回工作簿所属的 Excel 应用程序对象,通常与 Application属性相同。
- CodeName: 该属性返回工作簿的代码名称,通常为 ThisWorkbook,这是工作簿在 VBA 中的唯一标识符。
- CommandBars: 返回一个 CommandBars对象,代表 Excel 中的所有命令栏,用户可以通过它访问菜单、工具栏等。
- FullName: 返回包含工作簿名称及其路径的完整文件名。例如,C:\Users\Documents\MyWorkbook.xlsx。
- HasPassword: 如果工作簿有密码保护,这个属性返回 True,否则返回False。
- Names: 返回工作簿中的所有命名范围(包括跨工作表的范围名)。
- Password: 获取或设置工作簿打开时需要输入的密码。
- Path: 返回工作簿文件所在的目录路径。例如,C:\Users\Documents。
- ProtectStructure: 如果工作簿的工作表顺序受到保护,则返回 True。
- ProtectWindows: 如果工作簿的窗口布局(如位置和大小)受到保护,则返回 True。
- Saved: 如果工作簿自上次保存以来没有做任何更改,则返回 True。如果有修改,返回False。
- Sheets: 返回工作簿中所有工作表的集合。通过这个属性可以访问所有工作表(包括图表工作表)。
- Worksheets: 与 Sheets相同,返回所有工作表的集合,但不包括图表工作表。
一些重要的 Microsoft Excel 工作簿对象方法
| 工作簿对象方法 | 执行的操作 | 
|---|
| Activate | 激活与工作簿关联的第一个窗口。 | 
| Close | 关闭工作簿。 | 
| PrintOut | 打印工作簿(所有工作表)。 | 
| Protect | 保护工作簿,使其无法修改,可以设置密码或不设置密码。 | 
| ProtectSharing | 保存工作簿并保护其共享,可以设置密码或不设置密码。 | 
| Save | 保存工作簿。 | 
| SaveAs | 将工作簿保存到不同的文件或文件夹中。 | 
| SaveCopyAs | 将工作簿保存为副本到另一个文件,同时保留内存中的打开工作簿。 | 
| Unprotect | 移除工作簿的保护(如果设置了保护),可能需要密码。 | 
| UnprotectSharing | 关闭共享保护并保存工作簿,可能需要密码。 | 
方法解释:
- Activate:此方法激活工作簿并显示其第一个窗口,如果有多个窗口与该工作簿关联。
- Close:关闭当前工作簿,可以选择保存更改。
- PrintOut:此方法将工作簿的所有工作表打印出来。
- Protect:通过设置密码或不设置密码来保护工作簿,防止对其进行修改。
- ProtectSharing:保存工作簿并保护其用于共享,确保只能在受控的环境下进行修改,可以选择是否设置密码。
- Save:保存工作簿的当前状态。
- SaveAs:将当前工作簿保存到一个新的位置或以不同的文件名保存。
- SaveCopyAs:保存工作簿的副本到另一个文件,而不影响当前打开的工作簿。
- Unprotect:移除工作簿的保护功能,如果保护时设置了密码,则需要输入密码来解除保护。
- UnprotectSharing:移除工作簿的共享保护,允许多个用户修改工作簿,解除后需要输入密码(如果设有密码)。
工作簿对象事件
| 事件名称 | 触发时机 | 事件声明及参数 | 
|---|
| Activate | 当 Excel 打开多个工作簿且工作簿被激活时触发。 | Private Sub Workbook_Activate() | 
| AfterSave | 工作簿保存之后触发。 | Private Sub Workbook_AfterSave(ByVal Success As Boolean) | 
| BeforeClose | 在工作簿关闭之前触发。如果工作簿有更改,此事件会在提示用户保存更改之前触发。 | Private Sub Workbook_BeforeClose(Cancel As Boolean) | 
| BeforePrint | 在打印工作簿(或其中的任何内容)之前触发。 | Private Sub Workbook_BeforePrint(Cancel As Boolean) | 
| BeforeSave | 在工作簿保存之前触发。 | Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) | 
| Deactivate | 当工作簿被停用时触发。 | Private Sub Workbook_Deactivate() | 
| NewChart | 当在工作簿中创建新的图表时触发。 | Private Sub Workbook_NewChart(ByVal Ch As Chart) | 
| NewSheet | 当在工作簿中创建新的工作表时触发。 | Private Sub Workbook_NewSheet(ByVal Sh As Object) | 
| Open | 当工作簿被打开时触发。 | Private Sub Workbook_Open() | 
| SheetActivate | 当任何工作表被激活时触发。 | Private Sub Workbook_SheetActivate(ByVal Sh As Object) | 
| SheetBeforeDoubleClick | 当双击任何工作表时,在默认双击动作之前触发。 | Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range) | 
| SheetBeforeRightClick | 当右键点击任何工作表时,在默认右键点击动作之前触发。 | Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range) | 
| SheetCalculate | 当工作表重新计算或图表上显示的数据发生变化时触发。 | Private Sub Workbook_SheetCalculate(ByVal Sh As Object) | 
| SheetChange | 当用户或外部链接更改工作表中的单元格时触发。 | Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) | 
| SheetDeactivate | 当任何工作表被停用时触发。 | Private Sub Workbook_SheetDeactivate(ByVal Sh As Object) | 
| SheetSelectionChange | 当在任何工作表上选择另一个单元格(或多个单元格)时触发。 | Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) | 
| WindowActivate | 当任何工作簿窗口被激活时触发。 | Private Sub Workbook_WindowActivate(ByVal Wn As Window) | 
| WindowDeactivate | 当任何工作簿窗口被停用时触发。 | Private Sub Workbook_WindowDeactivate(ByVal Wn As Window) | 
| WindowResize | 当任何工作簿窗口被调整大小时触发。 | Private Sub Workbook_WindowResize(ByVal Wn As Window) | 
	
相关