如何遍历表中的工作表列表?

时间:2019-04-09 15:56:04

标签: excel vba loops worksheet

我有200个工作表(命名为1、2、3,依此类推),我需要遍历并将每个范围的不同数据范围复制并粘贴到主工作表中。我该怎么办?

我在VB编辑器中有一个数组中所有工作表的列表,并试图遍历它。 我在另一个工作表的一个表中有工作表名称的列表,并尝试遍历它。

有人可以提供一个简单的示例说明如何完成其​​中一种方法吗?

示例代码如下所示。

Dim i As Integer
i = 11
Dim SheetList As String
Dim element As Variant
SheetList = Array("Sheet24", "Sheet25")

'Simplified example of Do While loop being used
Do While Sheet1.Cells(i, 2).Value <> ""
    For Each element In SheetList
        If element.Range("C3") = "" Then
            GoTo Next Iteration
        Else
            'copy and paste data in master worksheet
        End If
NextIteration:

    i = i +1
    Next element
Loop

预期结果:要复制并粘贴到主工作表上一个合并范围内的多个工作表中的数据范围。

1 个答案:

答案 0 :(得分:1)

您可以使用以下方法轻松遍历工作簿中的所有工作表,而无需其名称:

Dim sht As Worksheet
For Each sht In ThisWorkbook.Worksheets

    'do something
Next sht

如果每个工作表中需要复制的范围都不相同,那么您可以搜索要复制的列的标题,例如,获取所需的范围并将其内容粘贴到主工作表中。

如果要使用特定的工作表,则仍然可以遍历所有工作表,并检查特定工作表是否满足某些条件,例如:

For Each sht In ThisWorkbook.Worksheets
    If sht.Name = "something" Then
        'do something
    End If
    If Condition Then
        'do something
    End If
Next sht

例如,您要从中复制某些数据的工作表,可能具有分配了特定值的“标志”单元格,例如TRUE1。该代码将检查该单元格的内容并采取相应措施。

现在,如果您想通过不循环浏览所有工作表(无论如何应该不花太多时间)来节省时间,并避免检查每张工作表的状况,则可以创建自定义{{1} }工作表,仅包含您感兴趣的工作表。

collection