我有两个工作簿,一个源工作簿和一个目标工作簿。它们完全相同,除了一个在两个工作簿中具有相同名称但数据不同的工作表(两个工作簿都包含约30个工作表)。我想要的是将源工作簿中相同的其余工作表复制到目标工作簿中,留下那个数据不同的工作表。
基本上,目标工作簿中存在的相同工作表应该被来自源工作簿的工作表替换。这些工作表包含公式和命名范围。我成功地编写了VBA代码来复制工作表。但由于命名范围具有工作簿范围,因此命名范围仍然引用源工作簿中的位置。所以我得到了两个具有相同名称的命名范围,类似于:
基本上,目标工作簿中存在的相同工作表应该被来自源工作簿的工作表替换。这些工作表包含公式和命名范围。我成功地编写了VBA代码来复制工作表。但由于命名范围具有工作簿范围,因此命名范围仍然引用源工作簿中的位置。所以我得到了两个具有相同名称的命名范围,类似于:
'The one already present in the destination workbook (from the worksheet which was replaced)
Name=VaccStart , Refers To =Sheet2!$A$2
'The one due to the copied worksheet.
Name=VaccStart , Refers To =[C:\Users\.....\Source.xls]Sheet2!$A$2
当我复制命名区域时,我希望它们引用目标工作簿而不是源工作簿。由于两个工作簿中的所有工作表都相同,我只是在替换它们。
SourceWorkBk.Worksheets(i).Copy Before:=DestWorkBk.Worksheets(myindex)
- ansh