我有一个包含51个工作表的工作簿。工作表3(“结果”)包含我需要解析的所有数据。我想遍历工作表3并一次复制3列,从CT-CV列开始。然后将CT-CV粘贴到工作表4的“ B1”中。然后,宏将循环回到工作表3,并复制CW-CZ并粘贴到工作表5的“ B1”中。此循环将继续进行,直到所有51个工作表都有数据为止(转到工作表3中的IG列。
我发现许多宏的工作方式相反(从许多工作表复制到一个合并的工作表),但没有一个从合并的数据进行解析。
非常感谢!
一种执行此方法的方法是创建一个包含所有目标工作表名称的数组,然后循环该数组,以从中选择正确的3个匹配列组(即从第98、101、104列开始)。源工作表。像这样的东西似乎起作用:
Sub sCopyData()
Dim aDest() As Variant
Dim lngLoop As Long
Dim strLeft As String
Dim strRight As String
aDest = Array("Data1", "Data2")
For lngLoop = 0 To UBound(aDest)
Sheets("Results").Select
strLeft = Split(Cells(, 98 + (lngLoop * 3)).Address, "$")(1)
strRight = Split(Cells(, 100 + (lngLoop * 3)).Address, "$")(1)
Columns(strLeft & ":" & strRight).Select
Selection.Copy
Sheets(aDest(lngLoop)).Select
Columns("B:B").Select
ActiveSheet.Paste
Next lngLoop
End Sub
问候,