Excel VBA实例教程 #023:遍历工作表的方法

上一篇 / 下一篇  2011-09-14 15:22:27

 在Excel应用中经常需要遍历工作簿中所有的工作表,有以下两种方法可以实现。

1、使用For...Next 语句

使用For...Next 语句遍历工作簿中所有的工作表,如下面的代码所示。
  1. Sub ShCount1()
  2. Dim c As Integer
  3. Dim i As Integer
  4. Dim s As String
  5. c = Worksheets.Count
  6. For i = 1 To c
  7. s = s & Worksheets(i).Name & Chr(13)
  8. Next
  9. MsgBox "工作簿中含有以下工作表:" & Chr(13) & s
  10. End Sub
复制代码
代码解析:
ShCount1过程使用For...Next 语句遍历工作簿中所有的工作表,并用消息框显示所有的工作表名称。

第5行代码根据Worksheet对象的Count属性返回工作簿中工作表的数量赋给变量c。应用于Worksheet对象的Count属性返回Worksheets集合中工作表的数量,语法如下:

expression.Count

第6行代码开始For...Next 语句循环。For...Next 语句以指定次数来重复执行一组语句,语法如下:

For counter = start To end [Step step]
[statements]
[Exit For]
[statements]
Next [counter]

  • 参数counter是必需的,用做循环计数器的数值变量。
  • 参数start是必需的,循环计数器的初值。
  • 参数end是必需的,循环计数器的终值。
  • 参数step是可选的,环计数器的步长,缺省值为 1。
  • 参数statements是可选的,放在For和Next之间的一条或多条语句,它们将被执行指定的次数。

第7行代码在For...Next循环中根据工作表的索引号取得所有工作表的名称赋给字符串变量s。
运行ShCount过程结果如图 23 1所示。


图 1 取得所有工作表名称

2、使用For Each...Next 语句

使用For Each...Next语句遍历工作簿中所有的工作表,如下面的代码所示。
  1. Sub ShCount2()
  2. Dim Sh As Worksheet
  3. Dim s As String
  4. For Each Sh In Worksheets
  5. s = s & Sh.Name & Chr(13)
  6. Next
  7. MsgBox "工作簿中含有以下工作表:" & Chr(13) & s
  8. End Sub
复制代码
代码解析:

ShCount2过程使用For Each...Next语句遍历工作簿中所有的工作表,并用消息框显示所有工作表名称。

第4行代码使用For Each...Next语句遍历Worksheets集合中所有元素。For Each...Next语句针对一个数组或集合中的每个元素,重复执行一组语句,语法如下:

For Each element In Group
[statements]
[Exit For]
[statements]
Next [element]
    • 参数element是必需的,用来遍历集合或数组中所有元素的变量。
    • 参数group是必需的,对象集合或数组的名称。
    • 参数statements是可选的,针对对象集合或数组中的每一项执行的一条或多条语句。

    第5行代码将返回的工作表的名称赋给字符串变量s。


    TAG:

     

    评分:0

    我来说两句

    Open Toolbar