Как объединить рабочие листы из нескольких рабочих книг в новую рабочую книгу - PullRequest
0 голосов
/ 11 декабря 2018

Я хочу объединить данные из нескольких рабочих листов из нескольких рабочих книг.Например, у меня есть несколько рабочих книг с несколькими рабочими листами.

Итак, рассмотрим, что я хочу объединить данные из «Worksheet1» из «WorkBook1» и данные из «Worksheet2» из «Workbook2» и соответственно в «NewWorkSheet» из новой «WorkBook».Я хочу сделать это таким образом, чтобы данные вставлялись в «NewWorkSheet» одна под другой, например, первые 20 строк из «Worksheet1», затем следующие 20 из «Worksheet2» и т. Д. *

Iможет слиться в новый только из одного листа, но не из других.

Workbook xlWorkbookDLA3 = xlApp.Workbooks.Open(dropBoxPath + "Week49DLA3.xlsm");
Worksheet worksheetDLA3 = xlWorkbookDLA3.Worksheets["Wed-A"];

Workbook xlWorkbookDLA4 = xlApp.Workbooks.Open(dropBoxPath + "Week49DLA4.xlsm");
Worksheet worksheetDLA4 = xlWorkbookDLA4.Worksheets["Thurs-A"];

Workbook destionationworkBook = xlApp.Workbooks.Open(dropBoxPath + "Test.xlsm");
Worksheet destworkSheet = destionationworkBook.Worksheets["Sheet2"];

Microsoft.Office.Interop.Excel.Range from, to;


from = worksheetDLA3.Range["B7:S7"].EntireColumn;
to = destworkSheet.Range["B7:S7"].EntireColumn;

from.Copy(to);


destionationworkBook.SaveAs(@"C:\Users\ashish.mokadam\Desktop\DropBox\Test" + ".xlsm");

1 Ответ

0 голосов
/ 11 декабря 2018

Для каждого последующего рабочего листа, который вы хотите скопировать из (примечание, НЕ для 1-го рабочего листа), вставьте следующий пример кода между "from.Copy (to);"и "destionationworkBook.SaveAs (...":

     var destination_start_row = destworkSheet.UsedRange.Rows.Count + 1;  // + 1 because Excel is 1-indexed
     var source_used_rows      = worksheetDLA4.UsedRange.Rows.Count;

     from = worksheetDLA4.Range["B1:S" + source_used_rows];
     to   = destworkSheet.Range["B" + destination_start_row + ":S" + destination_start_row + source_used_rows];
     from.Copy(to);

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

Кроме того, у вас есть опечатка в имени переменной «desti o nationworkBook». Это должно быть «destinationworkBook».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...