Vba:如何计算工作簿中的工作表数量


您可以使用以下方法来统计 Excel 中工作簿中的工作表数量:

方法 1:计算活动工作簿中的工作表数量

 SubCountSheetsActive ()
   Range(" A1 ") = ThisWorkbook.Worksheets.Count
End Sub

方法2:计算打开的工作簿中的工作表数量

 SubCountSheetsOpen ()
    Range(" A1 ") = Workbooks(" my_data.xlsx ").Sheets.Count
End Sub

方法 3:计算闭合活页夹中的页数

 SubCountSheetsClosed ()
    Application.DisplayAlerts = False
    Set wb = Workbooks.Open(" C:\Users\Bob\Desktop\my_data.xlsx ")
    
    'count sheets in closed workbook and display count in cell A1 of current workbook
    ThisWorkbook.Sheets(1).Range(" A1 ").Value = wb.Sheets.Count

    wb.Close SaveChanges:=True
    Application.DisplayAlerts = True
End Sub

以下示例展示了如何在实践中使用每种方法。

示例 1:计算活动工作簿中的工作表数

假设我们打开了以下 Excel 工作簿并且正在查看它:

我们可以使用以下宏来计算该工作簿中的工作表总数并在单元格 A1 中显示该数字:

 SubCountSheetsActive ()
   Range(" A1 ") = ThisWorkbook.Worksheets.Count
End Sub

当我们运行这个宏时,我们会收到以下输出:

请注意,单元格A1包含值6

这告诉我们该工作簿中有 6 个工作表。

示例 2:计算打开的活页夹中的页数

假设我们有一个名为my_data.xlsx的 Excel 工作簿,其中打开了两张工作表,但我们当前没有查看它。

我们可以使用以下宏来计算该工作簿中的工作表总数,并在活动工作簿的单元格 A1 中显示该数字:

 SubCountSheetsOpen ()
    Range(" A1 ") = Workbooks(" my_data.xlsx ").Sheets.Count
End Sub

当我们运行这个宏时,我们会收到以下输出:

请注意,单元格A1包含值2

这告诉我们打开的工作簿中有 2 个工作表,名为my_data.xlsx

示例 3:计算闭合活页夹中的页数

假设我们有一个名为my_data.xlsx的 Excel 工作簿,其中有两个工作表当前未打开,但位于以下文件位置:

C:\Users\Bob\Desktop\my_data.xlsx

我们可以使用以下宏来计算该工作簿中的工作表总数,并显示活动工作簿第一张工作表的单元格 A1 中的数字:

 SubCountSheetsClosed ()
    Application.DisplayAlerts = False
    Set wb = Workbooks.Open(" C:\Users\Bob\Desktop\my_data.xlsx ")
    
    'count sheets in closed workbook and display count in cell A1 of current workbook
    ThisWorkbook.Sheets(1).Range(" A1 ").Value = wb.Sheets.Count

    wb.Close SaveChanges:=True
    Application.DisplayAlerts = True
End Sub

当我们运行这个宏时,我们会收到以下输出:

请注意,单元格A1包含值2

这告诉我们,关闭的工作簿中有 2 个工作表,名为my_data.xlsx

注意:在代码中, Application.DisplayAlerts=False告诉 VBA 不要显示打开关闭的工作簿、计算工作表然后关闭工作簿的过程。

其他资源

以下教程说明如何在 VBA 中执行其他常见任务:

VBA:如何计算范围内的行数
VBA:如何计算具有特定文本的单元格
VBA:如何编写 COUNTIF 和 COUNTIFS 函数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注