Kopieren Sie die Zeile und fügen Sie sie in die geschlossene Arbeitsmappe ein

0

Ich möchte in der Lage sein, eine Zeile auszuwählen und sie zu kopieren und (mit einer Befehlsschaltfläche) in eine geschlossene Arbeitsmappe einzufügen, die geschlossen bleibt. Der folgende Code kopiert alles unterhalb eines Bereichs. Ich möchte nur die ausgewählte Zeile kopieren.

Dies sind die Zeilen, die geändert werden müssen:

With ThisWorkbook.Worksheets("Sheet1")
With .Range(.Range("A4:Q4"), .Range("A4:Q4").End(xlDown))
destSht.Cells(destSht.Rows.Count, 1).End(xlUp).Offset(1).Resize(.Rows.Count, .Columns.Count).Value = .Value 

Der vollständige Code:

Sub copytoarchive()
Dim destSht As Worksheet
Workbooks.Open ("C:\...\FileToCopyTo.xlsx") 
Set destSht = ActiveWorkbook.Worksheets("Sheet3") 
With ThisWorkbook.Worksheets("Sheet1")
With .Range(.Range("A4:Q4"), .Range("A4:Q4").End(xlDown))
destSht.Cells(destSht.Rows.Count, 1).End(xlUp).Offset(1).Resize(.Rows.Count, .Columns.Count).Value = .Value 
End With
End With
destSht.Parent.Close True 
End Sub
L Weiß
quelle
Wenn Sie eine Datei bearbeiten möchten, müssen Sie sie öffnen. Sie können es nach dem Speichern wieder schließen.
Sir Adelaide
Es tut mir leid, aber ich verstehe nicht.
L White
Nun, Sie sagten, Sie wollten Daten in eine geschlossene Arbeitsmappe einfügen, die geschlossen bleibt - Sie müssen sie öffnen, wenn Sie Daten einfügen möchten
Sir Adelaide
Ja, das weiß ich. Das Problem ist, dass dieser Code mehrere Bereiche kopiert. Ich möchte nur die ausgewählte Zeile kopieren.
L White

Antworten:

0

Vielleicht so etwas wie:

Sub copytoarchive()
Dim destSht As Worksheet

Selection.Copy

Workbooks.Open ("C:\...\FileToCopyTo.xlsx")
Set destSht = ActiveWorkbook.Worksheets("Sheet3")

destSht.Activate
Range("A1").Select
destSht.Cells(destSht.Rows.Count, 1).End(xlUp).Offset(1).Select
ActiveSheet.Paste

destSht.Parent.Close True

End Sub

Es kopiert, öffnet das Zielblatt, findet die nächste Zeile so, wie Sie es bereits getan haben, fügt sie dann ein und schließt sie.

Sir Adelaide
quelle
Es gibt mir einen Fehler für den Zeilenbereich ("A1"). Wählen Sie
L White