VBA 遍历工作表
Workbook对象的Worksheets属性(最后多一个s)包含工作簿对象中的所有工作表;
通过For Each或For To进行遍历,获取每一个Woksheet。
示例:
Excel程序打开了Excel文件: D:\小步教程1.xlsx。
其中包含三个工作表:Sheet1、Sheet2、Sheet3。
第1种遍历方式:For Each
Sub sub1_1()
Dim wb As Workbook
Dim ws As Worksheet
'获取Workbook对象
Set wb = Workbooks("小步教程1.xlsx")
'通过Workbooks.Worksheets遍历工作表
For Each ws In wb.Worksheets
Debug.Print ws.Name
Next
End Sub
wb.Workbooks:工作簿的工作表的集合。
Worksheet.Name:工作表的名称。
输出结果:
Sheet1
Sheet2
Sheet3
Worksheets,表示当前工作簿的所有工作表。
Sub sub1_2()
Dim ws As Worksheet
For Each ws In Worksheets
Debug.Print ws.Name
Next
End Sub
输出结果不确定。
如果当前工作簿是 小步教程1.xlsx,则结果相同。
如果同时打开多个工作簿,选择当前工作簿为B.xlsx,则结果为B.xlsx中的表单名称。
第2种遍历方式:For To
Sub sub2()
Dim wb As Workbook
Dim ws As Worksheet
Dim i As Integer
Set wb = Workbooks("小步教程1.xlsx")
'Count属性返回工作表的数量
For i = 1 To wb.Worksheets.Count
'Item(i)属性获取工作表
Debug.Print wb.Worksheets.Item(i).Name
Next
End Sub
Worksheets.Count:工作表集合中的元素个数。
Worksheets.Item(i):获取工作表集合中的第i个工作表。下标从1开始。