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 函数