Я хотел бы скопировать данные из указанного листа в открытой рабочей книге на другой указанный лист в закрытой рабочей книге.
У меня есть такой код:
Private Sub CommandButton1_Click()
Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lCopyLastRow As Long
Dim lDestLastRow As Long
'Set variables for copy and destination sheets
Set wsCopy = Workbooks("Form Marketing Calendar1.xlsm").Worksheets("Form Single")
Set wsDest = Workbooks.Open("Database Marketing Calendar.xlsx").Worksheets("Sheet1")
'2. Find first blank row in the destination range based on data in column A
'Offset property moves down 1 row
lDestLastRow = wsDest.Cells(wsDest.Rows.Count, "B").End(xlUp).Offset(1).Row
'3. Copy & Paste Data
wsCopy.Range("B22:AF25").Copy
wsDest.Range("B" & lDestLastRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
wsCopy.Range("B26:AF30").Copy
wsDest.Range("G" & lDestLastRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Selection.ClearContents
wsDest.Parent.Close True
End Sub
На самом деле он скопировал данные, но сначала должен открыть файл назначения, а затем автоматически закрыть его.
Также копируются только первые данные (это: wsCopy.Range("B22:AF25").Copy
), но вторые данные не копируются (это: wsCopy.Range("B26:AF30").Copy
).