2017-08-07 305 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

我最终删除了画布模板的其余部分,只是在工作表的底部有一行。现在工作真棒。

相关问题