Excel 选择带前缀的多个工作表

Excel 选择带前缀的多个工作表,excel,vba,copy-paste,worksheet-function,Excel,Vba,Copy Paste,Worksheet Function,虽然我需要从仅以“2018和2017”开头的工作表中复制数据,但我正在使用多个选项卡的工作表 从这些表中,我想复制范围示例(A13:L40),并将它们全部粘贴到另一个选项卡“摘要”中 非常感谢您的帮助或建议 下面是我迄今为止创建的宏,仍然不确定如何添加2017 Sub Macroif() Dim sheet As Worksheet Sheets("Summary").Activate For Each sheet In Worksheets If (

虽然我需要从仅以“2018和2017”开头的工作表中复制数据,但我正在使用多个选项卡的工作表

从这些表中,我想复制范围示例(A13:L40),并将它们全部粘贴到另一个选项卡“摘要”中

非常感谢您的帮助或建议

下面是我迄今为止创建的宏,仍然不确定如何添加2017

Sub Macroif()
    Dim sheet As Worksheet

    Sheets("Summary").Activate

    For Each sheet In Worksheets
        If (sheet.Name Like "2018*") Then
            sheet.Select
            sheet.Range("A13:L40").Copy
            Worksheets("Summary").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial (xlPasteValues)

        End If
    Next sheet

End Sub

Sheet对象有一个属性“name”,有很多方法可以检查字符串中的子字符串。因此,只需遍历所有工作表并检查标题是否以子字符串开头,然后将range对象设置为要复制和复制/粘贴的任何列

编辑:OP编辑后,以下是缺少的代码:

If (sheet.Name Like "2018*") Then
改为:

If (Left(sheet.Name,4)="2018") or (Left(sheet.name,4)="2017") Then

也可以在图纸之间循环,而无需选择图纸

Sub Macroif()
    Dim sh As Worksheet

    For Each sh In Worksheets
        If sh.Name <> "Summary" Then
            If sh.Name Like "2017*" Or sh.Name Like "2018*" Then
                With sh
                    .Range("A13:L40").Copy
                    With Worksheets("Summary")
                        .Range("A" & .Cells(.Rows.Count, "A").End(xlUp).Row + 1).PasteSpecial (xlPasteValues)
                    End With
                End With
            End If

        End If
    Next sh

End Sub
Sub-Macroif()
将sh设置为工作表
对于工作表中的每个sh
如果sh.名称为“摘要”,则
如果上海名称如“2017*”或上海名称如“2018*”,则
与sh
.范围(“A13:L40”).副本
带工作表(“摘要”)
.Range(“A”和.Cells(.Rows.Count,“A”).End(xlUp).Row+1.PasteSpecial(xlPasteValues)
以
以
如果结束
如果结束
下一个sh
端接头

@rademicha同志非常感谢,它工作得很好。非常感谢您的帮助。请注意,我在行计数中添加了“+1”