我有100个工作表的工作簿1。
我有200工作表的工作簿2。excel vba比较和复制2个excel文件的工作表
我需要执行两个任务:
对于那些现有工作表(同一工作表的名称在两本书),我想删除书1项表内容(列AZ)和复制内容(列AZ)从书2预订1
对于那些缺少工作表的工作簿1,我想整个工作表从书2复制到书籍1.
请告知,如果有任何现有的在线vba,谢谢。
我有100个工作表的工作簿1。
我有200工作表的工作簿2。excel vba比较和复制2个excel文件的工作表
我需要执行两个任务:
对于那些现有工作表(同一工作表的名称在两本书),我想删除书1项表内容(列AZ)和复制内容(列AZ)从书2预订1
对于那些缺少工作表的工作簿1,我想整个工作表从书2复制到书籍1.
请告知,如果有任何现有的在线vba,谢谢。
首先,您需要循环浏览所有工作表,打开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();
}
}
}
VBA和VB.NET是两种完全不同的语言。即使将C#代码翻译为VB.NET,也不会有任何可以编译或对VBA有用的内容。 –
寻找你写将是很好过的任何代码。或者我们应该做你的家庭作业? – mike27015
谢谢,迈克,它的确有助于缓解我的问题 – user1884324