У меня есть кнопка на листе со сводной таблицей в книге под названием «Шаблон гарантии.xlsm».Я хочу, чтобы эта кнопка скопировала первый столбец данных, который начинается с A5, и вставила этот столбец в другую книгу под названием «QA Matrix Template.xlsm».Я хочу, чтобы скопированные данные заканчивались последней пустой строкой столбца, и я хочу, чтобы диапазон, в который они вставляются, также вставлялся в первую пустую строку, начиная с D12.
Sub InsertData()
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("Warranty Template.xlsm").Worksheets("PivotTable")
Set wsDest = Workbooks("QA Matrix Template.xlsm").Worksheets("Plant Sheet")
'1. Find last used row in the copy range based on data in column A
lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A5").End(xlUp).Row
'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, "D12").End(xlUp).Offset(1).Row
'3. Copy & Paste Data
wsCopy.Range("A5" & lCopyLastRow).Copy _
wsDest.Range("D12" & lDestLastRow)
End Sub
ЯПолучение ошибки: 1004, и я не уверен, почему.Это связано с моими переменными lCopyLastRow
& lDestLastRow
.Код работает, если я устанавливаю статические диапазоны, но мне нужно, чтобы эти диапазоны были динамическими.