Workbook对象介绍

Workbook 对象的属性

在 Excel VBA 中,Workbook 是表示 Excel 工作簿的对象。每个工作簿对象都有一些属性,可以用来获取与该工作簿相关的各种信息或执行特定操作。表格列出了常见的一些属性及其含义。

Workbook 对象属性返回的值代表的内容
ActiveChartChart返回当前活动的图表对象。如果没有图表活动,则返回 Nothing
ActiveSheetWorksheet返回当前活动的工作表对象(即处于顶部的工作表)。
ApplicationApplication返回当前 Excel 应用程序的引用(即打开该工作簿的 Excel 实例)。
ParentApplication返回当前 Excel 应用程序的引用,通常与 Application 属性相同。
CodeNameString返回工作簿代码模块的名称(通常为 ThisWorkbook)。
CommandBarsObject返回一个 CommandBars 对象,表示 Microsoft Office Excel 的命令栏。
FullNameString返回工作簿的完整文件名(包括路径)。
HasPasswordBoolean返回一个布尔值,表示工作簿是否有密码保护。
NamesObject返回一个 Collection 对象,包含工作簿中的所有范围名称(包括特定于工作表的名称)。
PasswordString获取或设置打开工作簿时需要提供的密码。
PathString返回与工作簿关联的完整路径。
ProtectStructureBoolean返回一个布尔值,表示工作簿的工作表顺序是否受到保护。
ProtectWindowsBoolean返回一个布尔值,表示工作簿的窗口是否受到保护。
SavedBoolean返回一个布尔值,表示自上次保存以来是否对工作簿进行了修改。
SheetsObject返回一个 Collection,表示工作簿中的所有工作表。
WorksheetsObjectSheets 相同,返回一个 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关闭共享保护并保存工作簿,可能需要密码。

方法解释:

  1. Activate:此方法激活工作簿并显示其第一个窗口,如果有多个窗口与该工作簿关联。
  2. Close:关闭当前工作簿,可以选择保存更改。
  3. PrintOut:此方法将工作簿的所有工作表打印出来。
  4. Protect:通过设置密码或不设置密码来保护工作簿,防止对其进行修改。
  5. ProtectSharing:保存工作簿并保护其用于共享,确保只能在受控的环境下进行修改,可以选择是否设置密码。
  6. Save:保存工作簿的当前状态。
  7. SaveAs:将当前工作簿保存到一个新的位置或以不同的文件名保存。
  8. SaveCopyAs:保存工作簿的副本到另一个文件,而不影响当前打开的工作簿。
  9. Unprotect:移除工作簿的保护功能,如果保护时设置了密码,则需要输入密码来解除保护。
  10. 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)

Scroll to Top