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) |
相关