worksheet对象

工作表对象(Worksheet Object)

Microsoft Excel 中的工作表对象是任何工作表应用程序的核心,因此它是许多 Excel VBA 应用程序的焦点。类似于其父对象工作簿对象(Workbook object)和祖父对象应用程序对象(Application object),工作表对象具有许多属性、方法和事件,您可以通过 VBA 代码与之交互,以完全控制您的应用程序。

下表展示了控制 Excel 窗口行为的一些重要的工作表对象属性。

工作表对象属性返回值用途
Application Object获取对应用程序对象的引用获取应用程序对象的引用。
AutoFilter Objectobject获取一个 AutoFilter 对象,提供关于工作表上启用过滤的列表的信息。若未启用过滤,返回 Nothing。
AutoFilterMode布尔值获取或设置一个值,指示工作表上当前是否启用了过滤(即过滤下拉箭头是否显示)。
CellsRange 对象获取一个范围对象,表示工作表上的所有单元格(不仅仅是当前使用的单元格)。
CircularReferenceRange 对象获取一个范围对象,表示工作表上第一个循环引用的范围。若没有循环引用,返回 Nothing。
CodeName字符串设置工作表的 VBA 项目中的代码名称。
ColumnsRange 对象获取一个范围对象,表示工作表上的一个或多个列。
CommentsCollection 对象获取一个表示工作表中所有批注的 Comments 集合。
DisplayPageBreaks布尔值获取或设置一个值,指示是否显示工作表上的分页符(包括自动和手动分页符)。
EnableAutoFilter布尔值获取或设置一个值,指示当启用仅限用户界面的保护时,是否启用自动过滤箭头。
EnableCalculation布尔值获取或设置一个值,指示是否在必要时自动重新计算工作表。
EnableSelection布尔值获取或设置一个值,指示可以在工作表上选择哪些单元格。
Name字符串获取或设置工作表的名称。
NamesCollection 对象获取一个 Names 集合,表示工作表特定的所有名称(以 WorksheetName! 为前缀定义的名称)。
Next WorksheetWorksheet 对象获取表示下一个工作表的 Worksheet 对象。
Parent WorkbookWorkbook 对象获取工作表的父对象,即工作簿对象。
Previous WorksheetWorksheet 对象获取表示前一个工作表的 Worksheet 对象。
ProtectContents布尔值获取一个值,指示工作表内容(单元格)是否受保护。
Protection ObjectProtection 对象获取一个 Protection 对象,表示工作表的保护选项。
RangeRange 对象获取一个 Range 对象,表示单元格或一系列单元格。
RowsRange 对象获取一个 Range 对象,表示工作表上的一行或多行。
ScrollAreaRange 对象获取或设置允许滚动的范围,以 A1 风格的范围引用表示。
Sort ObjectObject 对象获取当前工作表的排序值。
Tab ObjectObject 对象获取工作表的标签对象。
Type ObjectObject 对象获取工作表的类型。
UsedRangeRange 对象获取一个范围对象,表示曾经包含过值的所有单元格。
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 将首先触发工作表对象事件,然后是相关的工作簿对象事件,最后是应用程序对象事件(事件的触发顺序始终是从底层到高层对象)。

Scroll to Top