2015-12-01 11 views
1

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

вот что у меня есть, но это не совсем то, что мне нужно, бросает ошибку говоря:

объект требуется

на этой линии: Last_Row = Range("A" & Rows.Count).End(xlUp).Row)

И я пытаюсь сделать это в .VBS подать

Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = True 

Set objWorkbook = objExcel.Workbooks.Open("D:\Test2.xlsx") 
Set objWorksheet = objWorkbook.Worksheets("Sheet 2") 

Set objRange = objWorksheet.Range("A5:D5") 
objRange.Copy 

'destination spreadsheet stuff: 
Set objExcel2 = CreateObject("Excel.Application") 
objExcel2.Visible = True 
Set objWorkbook2 = objExcel.Workbooks.Open("D:\Test1.xlsx") 
Set objWorksheet2 = objWorkbook2.Worksheets("Sheet1") 

Last_Row = Range("A" & Rows.Count).End(xlUp).Row 
objWorksheet2.Range("B" & Last_Row).Activate 
objWorksheet2.Paste 
+1

что не VB.NET код – Plutonix

+0

, который был предложенный тег удалю его. – user2026188

+0

если это не код VBscript, то что это? – user2026188

ответ

1

Я изменил Last_Row к Next_Row потому, что вы хотите вставить на следующей строке после данных (отсюда + 1).

И избавился от второго экземпляра Excel, потому что вставка между двумя экземплярами очень ограничена и программно очень неэффективна!

Так это должно работать нормально:

Set objExcel = CreateObject("Excel.Application") 
objExcel.Visible = True 

Set objWorkbook = objExcel.Workbooks.Open("D:\Test2.xlsx") 
Set objWorksheet = objWorkbook.Worksheets("Sheet 2") 

Set objRange = objWorksheet.Range("A5:D5") 
objRange.Copy 

'destination spreadsheet stuff: 
Set objWorkbook2 = objExcel.Workbooks.Open("D:\Test1.xlsx") 
Set objWorksheet2 = objWorkbook2.Worksheets("Sheet1") 

Next_Row = objWorksheet2.Range("B" & objWorksheet2.Rows.Count).End(xlUp).Row + 1 
objWorksheet2.Range("B" & Next_Row).Paste 
+0

Я получаю неизвестную ошибку. Вероятно, я должен был объяснить, что я пытаюсь выполнить его из файла .vbs. – user2026188

+0

Действительно, было бы хорошо знать! Не уверен, как это сделать в VBS, хотя ...: / – R3uK