2017-08-07 6 views
0

Im Moment habe ich eine Arbeitsmappe, die ein Hauptblatt und mehrere individuelle Kundenblätter enthält. Ich schreibe einen Code, um die Kundenspalte zu betrachten, kopiere die Zeile und füge sie dann in ihr jeweiliges Blatt ein. Am Ende möchte ich die letzte Zeile aus meinem Vorlagenblatt als letzte Zeile für das Kundenblatt einfügen. Dies ist um Durchschnittswerte zu berechnen. Bis jetzt funktioniert es, aber die letzte Zeile wird oben auf dem Blatt eingefügt, aber nicht unten. Ich kann nicht herausfinden, wie ich es in die letzte Reihe bringen kann.Letzte Zeile eines Blattes kopieren und letzte Zeile eines anderen Blattes einfügen 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

Ist die Zeile an die Spitze der für die in Ihrer 'For i' Schleife einfügen? Sie müssen möglicherweise auch '.Row' hinter' .End (xlUp) 'in dieser Schleife hinzufügen, um sicherzustellen, dass die Zeile richtig angezeigt wird. – BruceWayne

+0

Ja, das ist richtig, die Zeile einfügen auf der Oberseite ist in der Schleife. Und danke, ich werde versuchen, das jetzt hinzuzufügen. @BruceWayne – KingSneaky

+0

Oh, versuch '... Kopiere ws2.Rows (ws2.Cells (ws2.Rows.Count, "G"). Ende (xlUp) .Row + 1) '. Warum auch eine andere Worksheet-Variable erstellen und nicht nur 'tws' anstelle von' ws2' verwenden? – BruceWayne

Antwort

0

Ich beendete den Rest der Leinwand-Vorlage Löschen oben nur auf dem Blatt die untere Reihe haben. Funktioniert jetzt super.

Verwandte Themen