我仍然是VBA的新手,但我试图循环并复制动态数量的工作表数据(这些数据每月更改并且长度不同)并且不包括前两张和最后一张。数据从第6行开始,我想将所有内容复制到名为Combined_Athlete的最后一行的第一张纸上。我下面的代码实际上工作,但循环数据5次,并将内容的副本复制到第一个选项卡。谁能帮忙告诉我哪里出错了?我设置第二个变量将数据从第6行复制到最后一行,因为它是它开始的地方,但我不确定这是否是它复制的5倍额外数据的原因。任何帮助表示赞赏!
Sub CopyAndCombineSheets()
Dim i As Integer
Dim j As Integer
Dim ws As Worksheet
Dim LastRow As Long
For i = 3 To Worksheets.Count - 1
For Each ws In Worksheets
Worksheets(i).Select
LastRow = ThisWorkbook.ActiveSheet.UsedRange.Rows.Count
For j = 6 To LastRow
ThisWorkbook.ActiveSheet.Rows(j).Copy Sheets("Combined_Athlete").Range("A" & Sheets("Combined_Athlete").Range("A" & Rows.Count).End(xlUp).Row + 1)
Next j
Next ws
Next i
End Sub
您在所有工作表中循环两次。尝试这样的事情:
For Each ws In Worksheets
If ws.Name <> "Combined_Athlete" then
LastRow = ws.UsedRange.Rows.Count
For j = 6 To LastRow
ws.Rows(j).Copy Sheets("Combined_Athlete").Range("A" & Sheets("Combined_Athlete").Range("A" & Rows.Count).End(xlUp).Row + 1)
Next j
End if
Next ws