私は2冊のワークブックを持っています。ソース ワークブックとデスティネーション ワークブック。両方で同じ名前を持つが異なるデータを持つ 1 つのワークシートを除いて、それらは完全に同じです (両方とも約 30 シートを含みます)。私が望んでいたのは、残りの同一のワークシートをソース ワークブックから宛先ワークブックにコピーして、データを延期する 1 つのワークシートを残すことでした。
基本的に、宛先ワークブックに存在する同一のワークシートは、ソース ワークブックのワークシートに置き換える必要があります。ワークシートには、数式と名前付き範囲が含まれています。ワークシートをコピーするための VBA コードを正常に作成できました。ただし、名前付き範囲にはワークブック スコープがあるためです。名前付き範囲は、引き続きソース ワークブック内の場所を参照します。したがって、同じ名前の名前付き範囲が 2 つ取得されます。何かのようなもの:
'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
名前付き範囲をコピーするときに、コピー元のブックではなく、コピー先のブックを参照するようにします。両方のワークブックのすべてのシートが同じであるため、それらを置き換えるだけです。