选择带前缀的多个工作表
selecting multiple worksheet with prefix
虽然我需要从仅以“2018 和 2017”开头的工作表中复制数据,但我正在处理包含多个选项卡的工作表。
我想从这些工作表中复制范围示例 (A13:L40) 并将它们全部粘贴到另一个选项卡中 "summary"。
非常感谢任何帮助或建议
下面是我到目前为止创建的宏,仍然不确定如何添加 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 object 有一个 属性 "name",并且有很多方法可以检查字符串中的子字符串。因此,只需遍历所有工作表并检查标题是否以您的子字符串开头,然后将范围 object 设置为您要复制的任何列和 copy/paste.
编辑:OP 编辑后,这里是缺少的代码:
If (sheet.Name Like "2018*") Then
将其更改为:
If (Left(sheet.Name,4)="2018") or (Left(sheet.name,4)="2017") Then
您也可以循环遍历 sheet,而无需选择 sheet。
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
虽然我需要从仅以“2018 和 2017”开头的工作表中复制数据,但我正在处理包含多个选项卡的工作表。
我想从这些工作表中复制范围示例 (A13:L40) 并将它们全部粘贴到另一个选项卡中 "summary"。
非常感谢任何帮助或建议
下面是我到目前为止创建的宏,仍然不确定如何添加 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 object 有一个 属性 "name",并且有很多方法可以检查字符串中的子字符串。因此,只需遍历所有工作表并检查标题是否以您的子字符串开头,然后将范围 object 设置为您要复制的任何列和 copy/paste.
编辑:OP 编辑后,这里是缺少的代码:
If (sheet.Name Like "2018*") Then
将其更改为:
If (Left(sheet.Name,4)="2018") or (Left(sheet.name,4)="2017") Then
您也可以循环遍历 sheet,而无需选择 sheet。
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