2017-08-07 310 views
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 
+0

該行是否粘貼到您的'For i'循環中的頂部?您可能還需要在該循環中的'.End(xlUp)'之後添加'.Row',以確保它正確地獲取該行。 – BruceWayne

+0

是的,這是正確的,粘貼在頂部的線在循環中。謝謝,我現在會嘗試添加。 @BruceWayne – KingSneaky

+0

哦,試試'...複製ws2.Rows(ws2.Cells(ws2.Rows.Count,「G」).End(xlUp).Row + 1)''。另外,爲什麼要創建另一個Worksheet變量,而不是僅僅使用'tws'而不是'ws2'? – BruceWayne

回答

0

我最終刪除了畫布模板的其餘部分,只是在工作表的底部有一行。現在工作真棒。

相關問題