【发布时间】:2015-06-08 19:47:43
【问题描述】:
在一个工作簿中,有数百个工作表。
我正在尝试将某些工作表(其名称以“_A”或“_B”结尾)中的某个范围(A2:D6)合并到一个工作表(“组合”)中。
目标工作表的数据结构相同:
目标工作表名称都以“_A”或“_B”结尾:例如
Code1_A
Code1_B
Code2_A
Code2_B
Code3_A
Code3_B
.
.
.
我想像这样将它们组合为 VALUE 并保持 FORMAT:
目前,我有以下代码:
Sub Merge ()
Dim Sheet As Worksheet
For Each Sheet In ActiveWorkbook.Sheets
If Sheet.Name Like "*" & strSearch & "_A" Or _
Sheet.Name Like "*" & strSearch & "_B" Then
Sheets(Sheet.Name).Range("A2:D6").Copy
End If
Next
With Worksheets("Combined").Range("A2")
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With
End Sub
*问题:我的代码查找以“_A”和“_B”结尾的工作表,但要么覆盖它们,要么获取匹配的第一个实例。 如何修复它以获取以“_A”或“_B”结尾的所有工作表并循环直到所有目标工作表的所有范围都在另一个下组合?
或者有没有其他方法可以更快地实现这一目标?
【问题讨论】:
标签: vba excel while-loop