工作表对象(Worksheet Object)
Microsoft Excel 中的工作表对象是任何工作表应用程序的核心,因此它是许多 Excel VBA 应用程序的焦点。类似于其父对象工作簿对象(Workbook object)和祖父对象应用程序对象(Application object),工作表对象具有许多属性、方法和事件,您可以通过 VBA 代码与之交互,以完全控制您的应用程序。
下表展示了控制 Excel 窗口行为的一些重要的工作表对象属性。
工作表对象属性 | 返回值 | 用途 |
---|---|---|
Application Object | 获取对应用程序对象的引用 | 获取应用程序对象的引用。 |
AutoFilter Object | object | 获取一个 AutoFilter 对象,提供关于工作表上启用过滤的列表的信息。若未启用过滤,返回 Nothing。 |
AutoFilterMode | 布尔值 | 获取或设置一个值,指示工作表上当前是否启用了过滤(即过滤下拉箭头是否显示)。 |
Cells | Range 对象 | 获取一个范围对象,表示工作表上的所有单元格(不仅仅是当前使用的单元格)。 |
CircularReference | Range 对象 | 获取一个范围对象,表示工作表上第一个循环引用的范围。若没有循环引用,返回 Nothing。 |
CodeName | 字符串 | 设置工作表的 VBA 项目中的代码名称。 |
Columns | Range 对象 | 获取一个范围对象,表示工作表上的一个或多个列。 |
Comments | Collection 对象 | 获取一个表示工作表中所有批注的 Comments 集合。 |
DisplayPageBreaks | 布尔值 | 获取或设置一个值,指示是否显示工作表上的分页符(包括自动和手动分页符)。 |
EnableAutoFilter | 布尔值 | 获取或设置一个值,指示当启用仅限用户界面的保护时,是否启用自动过滤箭头。 |
EnableCalculation | 布尔值 | 获取或设置一个值,指示是否在必要时自动重新计算工作表。 |
EnableSelection | 布尔值 | 获取或设置一个值,指示可以在工作表上选择哪些单元格。 |
Name | 字符串 | 获取或设置工作表的名称。 |
Names | Collection 对象 | 获取一个 Names 集合,表示工作表特定的所有名称(以 WorksheetName! 为前缀定义的名称)。 |
Next Worksheet | Worksheet 对象 | 获取表示下一个工作表的 Worksheet 对象。 |
Parent Workbook | Workbook 对象 | 获取工作表的父对象,即工作簿对象。 |
Previous Worksheet | Worksheet 对象 | 获取表示前一个工作表的 Worksheet 对象。 |
ProtectContents | 布尔值 | 获取一个值,指示工作表内容(单元格)是否受保护。 |
Protection Object | Protection 对象 | 获取一个 Protection 对象,表示工作表的保护选项。 |
Range | Range 对象 | 获取一个 Range 对象,表示单元格或一系列单元格。 |
Rows | Range 对象 | 获取一个 Range 对象,表示工作表上的一行或多行。 |
ScrollArea | Range 对象 | 获取或设置允许滚动的范围,以 A1 风格的范围引用表示。 |
Sort Object | Object 对象 | 获取当前工作表的排序值。 |
Tab Object | Object 对象 | 获取工作表的标签对象。 |
Type Object | Object 对象 | 获取工作表的类型。 |
UsedRange | Range 对象 | 获取一个范围对象,表示曾经包含过值的所有单元格。 |
Visible | 整数 | 获取或设置一个值,确定该对象是否可见(xlSheetVisible )、隐藏(xlSheetHidden )或非常隐藏(xlSheetVeryHidden )。 |
这些属性可以帮助您管理工作表的外观、内容和行为,并允许您使用 VBA 编写代码来控制 Excel 中的各种工作表操作。
一些重要的 Excel 工作表对象方法
Activate | 将工作表对象设置为活动工作表。 |
Delete | 删除工作表对象。 |
Move | 将工作表移动到工作簿中的另一个位置。 |
Paste | 将剪贴板的内容粘贴到工作表中。 |
PasteSpecial | 将剪贴板的内容以指定的格式粘贴到工作表中。 |
PrintOut | 打印工作表。 |
PrintPreview | 显示工作表的预览。 |
Protect | 保护工作表。 |
SaveAs | 将工作表的更改保存到不同的文件中。 |
Select | 选择工作表。 |
Unprotect | 如果工作表已保护,则移除保护。 |
工作表对象事件及其发生时机
与 Excel 应用程序和工作簿对象相比,工作表对象的事件集较小。您可以使用这些事件来控制用户对每个工作表标签的操作。
下表显示了最重要的工作表对象事件、它们的发生时机、以及事件声明和参数(如果有的话)。
Activate | 当工作表被激活时。 | Private Sub Worksheet_Activate() |
BeforeDoubleClick | 当工作表被双击时,发生在默认双击操作之前。 | Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) |
BeforeRightClick | 当工作表被右击时,发生在默认右击操作之前。 | Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) |
Calculate | 当工作表被重新计算或任何更改的数据被绘制在图表上时。 | Private Sub Worksheet_Calculate() |
Change | 当工作表中的单元格被用户或外部链接更改时。 | Private Sub Worksheet_Change(ByVal Target As Range) |
Deactivate | 当工作表被停用时。 | Private Sub Worksheet_Deactivate() |
SelectionChange | 当选择工作表中的另一个单元格(或多个单元格)时。 | Private Sub Worksheet_SelectionChange(ByVal Target As Range) |
这些方法和事件使得您能够通过 VBA 代码与工作表进行交互,处理用户操作或控制工作表的行为。
请注意,所有工作表对象事件在其过程声明中都以 Worksheet_
作为前缀。再次强调,对于与工作簿和应用程序对象相关联的每个事件,Excel 将首先触发工作表对象事件,然后是相关的工作簿对象事件,最后是应用程序对象事件(事件的触发顺序始终是从底层到高层对象)。