Я хочу иметь возможность выбрать строку и скопировать и вставить ее (с помощью кнопки команды) в закрытую книгу, которая остается закрытой. Код ниже копирует все ниже диапазона. Я просто хочу скопировать выбранную мной строку.

Это строки, которые необходимо изменить:

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 

Полный код:

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

1 ответ1

0

Может быть что-то вроде:

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

Он копирует, открывает целевой лист, находит следующую строку, как вы это уже делали, затем вставляет и закрывает.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .