2017-03-13 2 views
1

Kann mir bitte jemand helfen, einen benutzerdefinierten Bereich zu kopieren und einzufügen. Ich habe die unten, aber aus irgendeinem Grund bekomme ich einen Fehler beim Versuch, die Aktion durchzuführen. Ich vermute, ich vermisse eine winzige Veränderung. Vielen Dank.Benutzerdefinierten Bereich kopieren und einfügen

Sheets("Sheets1").Select 
Dim lngLastRow2 As Long 

lngLastRow2 = Cells(Rows.Count, "A").End(xlUp).Row 

Worksheets("Sheets2").Range("A3:A" & lngLastRow).Copy _ 
Destination:=ActiveSheet.Range(lngLastRow2) 
+3

Sie einen Spaltenverweis in Ihrem Zielbereich benötigen, zur Zeit haben Sie nur ein Reihe. – SJR

Antwort

1

Sie tun hier einen Fehler haben:

Destination:=ActiveSheet.Range(lngLastRow2) 

die zu .Range(x) auswertet, wobei x einige Long ist. Was Range benötigt, ist etwas wie .Range("A20").

Eine Lösung ist es

Destination:=ActiveSheet.Range("A" & lngLastRow2) 

Oder eine andere Lösung zu ändern, anstatt eine Range Variable verwenden:

Dim lastRow As Range 
Set lastRow = ThisWorkbook.Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp) 
With ThisWorkbook.Worksheets("Sheet2") 
    .Range("A3:A" & lastRow.Row).Copy Destination:=.Range(lastRow.Address) 
End With 
+0

Basierend auf dem, was ich von Ihnen bekommen habe, kopierte es nur über eine einzige Spalte von Daten. Was ich versuche zu tun, ist die letzte Zeile der Daten in Blatt 1 zu bestimmen (speichern, dass), bestimmen Sie die letzte Zeile in Blatt 2, dann kopieren Sie alle Daten vom Anfang bis zur letzten Zeile in Blatt 2 in Blatt 1 beginnend beim ersten Leerzeichen Reihe. Ich brauche offensichtlich alle Spalten, die Daten auf Blatt 2 haben und nicht nur die erste Spalte. Ich habe darüber nachgedacht, die letzte Reihe von Daten und dann die letzte Spalte von Daten zu bestimmen, wie unten angemerkt, aber es scheint, dass ich das komplizierter mache, als es sein muss. – Danny

Verwandte Themen