Ich versuche, Spalte A beginnend in Zeile 2 auf "Sheet1" zu kopieren und in Spalte C auf Blatt "ABC" ab Zeile 5 einzufügen. Die Anzahl der Zeilen in Spalte A ist variabel, daher kann ich keinen festen Bereich verwenden.Dynamischen Bereich von einem Arbeitsblatt in ein anderes kopieren und einfügen
Der folgende Code tut, was ich brauche, aber ich versuche, mit .Select und .Activate Einstellung
LastRow = Range("A" & Rows.Count).End(xlUp).Row
Sheets("Sheet1").Range("A2:A" & LastRow).Copy
Sheets("ABC").Activate
Sheets("ABC").Range("C5:C" & LastRow).Select
Selection.PasteSpecial xlPasteValues
Ich habe versucht, die Spalten eines anderen gleich eins zu vermeiden, mit diesem Code:
Sheets("ABC").Range("C5").End(xlDown).Value=Sheets("Sheet1").Range("A2:A" & LastRow).Value
Dies läuft ohne Fehler, aber es „tut nichts“ - Keine Daten erscheinen auf Arbeitsblatt „ABC“
ich habe auch versucht zu folgenden:
Dim WS As Worksheet
Dim wsABC As worksheet
Set WS = Sheets("Sheet1")
Set wsABC = Sheets("ABC")
LastRow = Range("A" & Rows.Count).End(xlUp).Row
WS.Range("A2:A" & LastRow).Copy
wsABC.Range("C5").End(xlDown).Paste
Dies erzeugt einen „Laufzeitfehler # 438 Objekt diese Eigenschaft oder diese Methode nicht unterstützt“ Fehler auf dieser Linie:
wsABC.Range("C5").End(xlDown).Paste
Eine andere Methode, die ich versuchte, wurde wie folgt:
Dim WS As Worksheet
Set WS = Sheets("Sheet1")
Set wsABC = Sheets("ABC")
With WS
LastRow = Range("A" & Rows.Count).End(xlUp).Row
WS.Range("A2:A" & LastRow).value = wsABC.Range("C5:C & LastRow").Value
End With
Dies führt zu einem "Laufzeitfehler" 1004 'Anwendungsdefinierter oder objektdefinierter Fehler.
Ich bin offen für Korrekturen/Kommentare zu meinen Versuchen, ich möchte nur vermeiden mit .Select und .Activate.
Vielen Dank im Voraus für Ihre Zeit und Unterstützung!