Прежде всего вам нужно прокрутить все ваши рабочие листы для обоих, открыть 2 книги и пропустить их, затем вы можете выбрать их, сравнить, если их имя существует на другом листе, если нет, вы его добавляете , в противном случае вы копируете контент с одного на другой, а в конце вы должны их сохранять. Решение в C#, см. Ссылку для решения в VB.NET, что-то похожее на VBA.
Excel.Workbook workbook;
workbook = xlsApp.Workbooks.Open("first file", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Excel.Workbook workbook2;
workbook2 = xlsApp.Workbooks.Open("second file", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
foreach (Excel.Worksheet sheet in workbook.Sheets)
{
workbook.Activate();
sheet.Activate();
foreach (Excel.Worksheet sheet2 in workbook2.Sheets)
{
workbook2.Activate();
sheet2.Activate();
if(sheet2.Name.Equals(sheet.Name))
{
sheet.Range("A1:Z65535").Copy(Missing.Value);
sheet2.Range(cellmapp).PasteSpecial(); // where cellmap = A1:Z65535
}
else
{
Excel.Worksheet newWorksheet;
newWorksheet = (Excel.Worksheet)this.Application.Worksheets.Add();
sheet.Range("A1:Z65535").Copy(Missing.Value);
newWorksheet.Range(cellmapp).PasteSpecial(); // where cellmap = A1:Z65535
snewWorksheet.Range("A1:Z65535").Copy(Missing.Value);
newWorksheet.Columns.AutoFit();
}
}
}
http://www.developerfusion.com/tools/convert/csharp-to-vb/?batchId=36c4611b-294a-4f87-a762-1016ad46d508
Цель любого кода, который вы написали бы слишком хорошо. Или мы должны делать ваши домашние задания? – mike27015
спасибо, майк, это помогает облегчить мою проблему. – user1884324