Как скопировать диапазон ячеек до последней строки из другой книги в Excel VBA - PullRequest
0 голосов
/ 15 января 2019

Я пытаюсь скопировать диапазон ячеек до последней использованной строки из другой книги, которую моя основная книга уже открыла и активировала. Диапазон должен начинаться с C2 до столбца M, а затем до первой пустой строки.

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

!(http://tinypic.com/r/29uouwh/9)

Workbooks.Open ("C:\Users\user\Documents\Maintenance Department\General\Equipment Documentation\Holding Furnace\Readings\Data Logs\Flow Sensor Monthly Alarm Log - Inductor.xlsx")
ThisWorkbook.Activate

LastRow = Cells(Rows.Count, "A").End(xlUp).Row

Workbooks("Flow Sensor Monthly Alarm Log - Inductor.xlsx").Worksheets("Sheet1").Range("C2:M2" & LastRow).Copy

ThisWorkbook.Sheets("Data").Range("C" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues

1 Ответ

0 голосов
/ 15 января 2019

Попробуйте использовать Workbook и Worksheet объект вместо Activate:

Dim WB As Workbook
Dim DestSht As Worksheet
Dim SourceSht As Worksheet

Set DestSht = ThisWorkbook.Worksheets("Data")

Set WB = Workbooks.Open("C:\Users\user\Documents\Maintenance Department\General\Equipment Documentation\Holding Furnace\Readings\Data Logs\Flow Sensor Monthly Alarm Log - Inductor.xlsx")
Set SourceSht = WB.Worksheets("Sheet1")

LastRow = SourceSht.Cells(Rows.Count, "A").End(xlUp).Row

SourceSht.Range("C2:M" & LastRow).Copy
DestSht.Range("C" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...