添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Excel VBA 基础 窗口和应用程序 工作表和工作簿 使用 Range 对象 功能区编程 高级编程 操作其它 Office 应用程序 代码调试及优化

在对工作表中的单元格区域进行操作时,通常需要指定引用的工作表,在 VBA 中引用工作表有以下几种方法:

使用工作表名称

工作表名称是显示在工作表标签中的文本,使用工作表名称引用工作表可以利用 WorkSheets 集合和 Sheets 集合两种引用方式,下面的两句代码都可以激活工作簿中名称为“Sheet1”的工作表,激活后工作表将成为活动工作表。

Worksheets("Sheet1").Activate
Sheets("Sheet1").Activate

WorkSheets 与 Sheets

WorkSheets 集合包含所有的工作表。

Sheets 集合不仅包含工作表集合 WorkSheets,还包含图表集合 Charts,宏表集合 Excel4MacroSheets 与 MS Excel 5.0 对话框集合等。详细区别与使用参见: Sheets 与 Worksheets 在 Excel VBA 中的正确使用

任何时刻工作簿中只有一个工作表是活动工作表。

任何时刻工作簿内至少要有一张可视表。

使用索引号

工作表索引号是工作表在工作簿中的位置,Excel 根据工作表在工作表标签中的位置以 1 开始从左向右进行编号。

例如,下面的两行代码都将激活第一个工作表:

Worksheets(1).Select
Worksheets(1).Activate

单个 WorkSheet 对象的 Select 方法与 Activate 方法的主要区别在于 Select 方法要求工作表可见,如果第一张工作表是隐藏的,使用 Worksheets(1).Select 将出错。

如果工作簿中不仅包含工作表,还包含图表或宏表等,此时使用索引号引用工作表可能不是同一个表。

例如:工作簿中从左向右的工作表为:Sheet1、Chart1、Sheet2,当使用 Sheets(2).Select 时激活的工作表是 Chart1 ,当使用 Worksheets(2).Select 时激活的工作表是 Sheet2

Worksheet 对象的 index 属性返回工作表的索引号,如下面的示例代码显示工作表"Sheet1”的索引号:

MsgBox Worksheets("Sheet1").Index

使用代码名称

工作表代码名称显示在 VBE 【工程资源管理器】窗口中,在【属性】窗口的【名称】项中能够修改工作表代码名称。如下图所示,工作表 Sheet1 的代码名称改为 MySheet1

更改工作表代码名称
更改工作表代码名称

我们能够直接使用工作表代码名称来引用工作表,使用工作表代码名称的好处是: 即使工作表名称被用户修改,代码仍然能够正常运行

可以使用 Worksheet 对象的 CodeName 属性返回工作表的代码名称,如下面的代码返回第一张工作表的代码名称:

MsgBox Worksheets(1).CodeName

更多关于如何使用和重命名代码称请参阅: 使用 VBA 代码名称详解

使用 ActiveSheet 引用活动工作表

以下示例代码将活动工作表的名称修改为“ 果果云课堂 ”,然后使用消息框显示工作表的名称和工作表的代码名称。

Sub UseName()
    With ActiveSheet
        .Name = "果果云课堂"
        MsgBox "名称为:" & .Name & vbCrLf & "代码名称为:" & .CodeName
    End With
End Sub

ActiveSheet 属性应用于 Application 对象 Window 对象和 Workbook 对象,返回代表活动工作簿或者指定的窗口或工作簿中的活动工作表,如果没有活动的工作表,该属性则返回 Nothing 。如果省略对象,该属性则返回活动工作簿中的活动工作表。