Sheets 与 Worksheets 在 Excel VBA 中的正确使用

您所在的位置:网站首页 worksheets和sheets的区别 Sheets 与 Worksheets 在 Excel VBA 中的正确使用

Sheets 与 Worksheets 在 Excel VBA 中的正确使用

2023-10-06 22:28| 来源: 网络整理| 查看: 265

如果您是 Excel VBA 的初学者,您可能对 Worksheets 与 Sheets 在 Excel VBA 中的使用感到困惑。Worksheets 与 Sheets 有什么区别? 怎么在 Excel VBA 中的正确使用它们呢?

Sheets 对象

Sheets 对象是工作簿中所有类型工作表的集合。有 5 种不同类型的表:

Worksheet:工作表。即带有网格线和单元格的表,我们常用的工作表就是这个类型。 Chart:图表。我们将插入的图表移动到新工作表,这个新工作表类型就是图表。 DialogSheet:对话框表。现已替换为 VBA 窗体。 Macro sheets:Excel 版本 4 宏表。现已替换为 VBA。 International Macro sheet:Excel 版本 4 国际通用宏表。现已替换为 VBA。

Sheets 集合可以包含 Charts 和 Worksheets 对象。虽然今天我们只使用 2 种类型的工作表,工作表和图表,但过去还有 3 种类型的工作表,例如对话框工作表或宏工作表。您的公司中可能仍有使用它们的旧 Excel 文件,在这种情况下,如果您检查 Sheets 集合,您会发现它们都在那里。

Worksheets 对象

Worksheets 对象是指工作簿中所有 Worksheet 对象的集合。每个 Worksheet 对象代表一个工作表。Worksheet 对象也是 Sheets 集合的成员。Sheets 集合包含工作簿中的所有工作表(包括图表工作表和工作表)。

我们使用 Worksheets.Add 与 sheets.Add 不指定工作表类型,所新建的表类型就是 Worksheet。

Charts 对象

Charts 对象是指工作簿中所有图表工作表的集合。Chart 对象也是 Sheets 集合的成员。

示例

我们可以通过下面这个示例来区分 Sheets 与 Worksheets:

Sub SheetsVsWorksheets() Dim SheetsInNew As Integer Dim sht Dim ws Dim cht SheetsInNew = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 '设置创建一个新工作簿只包含 1 个工作表 Workbooks.Add '新建一个工作簿 '添加 5 种不同类型的表 Sheets.Add Type:=xlWorksheet '工作表 Sheets.Add Type:=xlChart '图表 Sheets.Add Type:=xlDialogSheet '对话框表 Sheets.Add Type:=xlExcel4MacroSheet 'Excel 4.0 宏表 Sheets.Add Type:=xlExcel4IntlMacroSheet 'Excel 4.0 国际通用宏表 Debug.Print "表总数: " & Sheets.Count '循环遍历 Sheets 集合中的每个对象 For Each sht In ActiveWorkbook.Sheets Debug.Print "表名: " & sht.Name & ", 类型: " & TypeName(sht) Next sht Debug.Print Debug.Print "工作表总数: " & Worksheets.Count '循环遍历 Worksheets 集合中的每个 Worksheet 对象 For Each ws In ActiveWorkbook.Worksheets Debug.Print "工作表名: " & ws.Name & ", 类型: " & TypeName(ws) Next ws Debug.Print Debug.Print "图表总数: " & Charts.Count '循环遍历 Charts 集合中的每个 Chart 对象 For Each cht In ActiveWorkbook.Charts Debug.Print "图表名: " & cht.Name & ", 类型: " & TypeName(cht) Next cht Application.SheetsInNewWorkbook = SheetsInNew '恢复创建新工作簿包含的工作表设置 End Sub 结果

运行上面的过程后,我们看到在新工作簿中一共有6个表:

添加5种不同类型的表

在 VBE 对象窗口中,我们只看到新建的工作簿2中只有两种类型的表,即工作表和图表,只有这两种表能写入 VBA 代码,别外两种宏表和对话框表都不存在:

Sheets 与 Worksheets

在立即窗口中显示的结果:

表总数: 6 表名: 宏2, 类型: Worksheet 表名: 宏1, 类型: Worksheet 表名: 对话框1, 类型: DialogSheet 表名: Chart1, 类型: Chart 表名: Sheet2, 类型: Worksheet 表名: Sheet1, 类型: Worksheet 工作表总数: 2 工作表名: Sheet2, 类型: Worksheet 工作表名: Sheet1, 类型: Worksheet 图表总数: 1 图表名: Chart1, 类型: Chart 提示

在 Excel VBA 中,如果你要在引用的工作表中使用公式,为避免出错,您最好使用 Worksheets() 而不是 Sheets() 。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3