0
現在,我有一個包含主工作表和多個單獨客戶工作表的工作簿。我正在編寫一些代碼來查看客戶專欄,複製該行,然後將其粘貼到各自的工作表中。最後,我希望我的模板的最後一行作爲客戶表的最後一行被粘貼。這是計算平均值。到目前爲止它可以工作,但最後一行被粘貼到工作表的頂部,而不是底部。我不知道如何讓它成爲最後一排。複製工作表的最後一行並粘貼到不同工作表的最後一行VBA
Sub copyPasteDataCustomer()
Dim sws As Worksheet
Dim tws As Worksheet
Dim cel As Range
Set sws = Sheets("Master")
For Each cel In sws.Range("B5:B" & Range("B" & Rows.Count).End(xlUp).Row)
Set tws = Sheets(CStr(cel.Value))
cel.EntireRow.Copy tws.Range("A" & Rows.Count).End(xlUp).Offset(1)
Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets("Canvus")
Dim ws2 As Worksheet: Set ws2 = tws
For i = 2 To ws1.Range("G" & Rows.Count).End(xlUp).Row
ws1.Rows(i).Copy ws2.Rows(ws2.Cells(ws2.Rows.Count, "G").End(xlUp))
Next i
Next cel
End Sub
該行是否粘貼到您的'For i'循環中的頂部?您可能還需要在該循環中的'.End(xlUp)'之後添加'.Row',以確保它正確地獲取該行。 – BruceWayne
是的,這是正確的,粘貼在頂部的線在循環中。謝謝,我現在會嘗試添加。 @BruceWayne – KingSneaky
哦,試試'...複製ws2.Rows(ws2.Cells(ws2.Rows.Count,「G」).End(xlUp).Row + 1)''。另外,爲什麼要創建另一個Worksheet變量,而不是僅僅使用'tws'而不是'ws2'? – BruceWayne