我有 100 个工作表的工作簿 1。
我有 200 个工作表的工作簿 2。
我需要执行 2 个任务:
对于那些现有的工作表(两本书中的工作表名称相同),我想删除第 1 本书的工作表内容(AZ 列)并将内容(AZ 列)从第 2 本书复制到第 1 本书。
对于工作簿 1 中缺少的工作表,我想将整个工作表从书 2 复制到书 1。
请告知是否有任何现有的在线 vba,谢谢。
首先,您需要遍历两个工作表的所有工作表,打开两个工作簿,然后遍历两个工作表,然后您可以选择它们,比较它们的名称是否存在于另一个工作表中,如果不存在,则添加它,否则,您将内容从一个复制到另一个,最后您应该保存它们。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();
}
}
}