使用前缀在多个工作表上运行Macro并将数据复制到其他工作表

时间:2018-08-10 00:07:27

标签: excel vba excel-vba worksheet-function

我在VBA中是一个全新的人,请原谅愚蠢的问题;)

背景
尽管我需要从仅以“ 2018和2017”开始的工作表中复制数据,然后将其粘贴到“摘要”选项卡,但是我正在使用具有多个选项卡的工作表。

详细信息
这些工作表的顶部是我不需要复制的标题和其他计算。(请参阅所附快照中的行1至10)
从这些工作表中,我想复制从第13行开始的范围,但是此行号可以将工作表更改为工作表,因此我创建了两个变量- 首先选择Cell(L1)并向下XL 第二个选择Range(“ L1048576”)。End(xlUp).Address 从那里,我选择End xlToLeft以选择整个范围并复制它-

问题
我无法使用变量运行此代码来选择范围,如果我使用单元格引用示例(“ A13:L26”)选择数据范围,则可以正常工作,但在使用变量选择范围时出错。 还有一种方法可以排除标题吗?

下面是我的代码

Screenshot of a Worksheet

socket.on

1 个答案:

答案 0 :(得分:0)

您需要找到每张纸上的范围-您需要在循环内 进行该操作:

Sub NEWWORK()
    Dim sheet As Worksheet
    Dim rng As Range

    Sheets("Summary").Activate

    For Each sheet In Worksheets
        If (Left(sheet.Name, 4) = "2018") Or (Left(sheet.Name, 4) = "2017") Then

            With sheet
                Set rng = .Range(.Range("L1").End(xlDown).Offset(1, 0), _
                                  .Cells(Rows.Count, "L").End(xlUp))
            End With

            With Worksheets("Summary")
                .Cells(Rows.Count, 1).End(xlUp).Resize(rng.Rows.Count, 1).Value = rng.Value
            End With

        End If
    Next sheet

End Sub