いくつかのマクロを実行して、他の多数のワークブックからシートのコピーを取得するワークブックがあります。ユーザーがプロジェクト フォルダーにコピーして、VLOOKUP
毎回数式を設定することなく使用できる 1 つのファイルを設定しようとしています。ユーザーは、サーバーからプロジェクト フォルダーにファイル NewProject.xlsm をコピーし、マクロを使用して、サーバー上にある 100 シリーズ、110 シリーズ、または 120 シリーズのワークブックから必要なさまざまなシートを取得します。
100 シリーズのワークブックには、ItemsE というシートがあり、VLOOKUP
2 つの列があり、別の列にデータ検証があります。ユーザーが 100_1A シートをプロジェクト ファイルに取り込むと、が取り込まれますVLOOKUP
が、元のファイルを参照します。
NewProject ファイルにも、同じ情報がすべて含まれた ItemsE シートがあります。質問ですが、VLOOKUP
100 シリーズのワークブックの 100_1A シートと 100_1C シートの数式を使用して、100 シリーズのファイルではなく NewProject ファイルの ItemsE シートを参照することはできますか? 元々、100 シリーズのファイルに次の数式を入れていました。
=VLOOKUP(D24,ItemsE!A:C,2,FALSE)
必要な 100 シリーズのシートをインポートした後、NewProject ファイルを開くと、数式は次のようになります。
=VLOOKUP(D22,'W:\Design\[C_DE100Series.xlsm]ItemsE'!A:C,2,FALSE)
これを修正する方法はありますか? データ検証でも機能しますか?
ご協力ありがとうございます。説明が長くなってしまい申し訳ありません。さらに詳しい情報が必要な場合はお知らせください。
答え1
ワークシートの数式で ItemsE の共通名を定義できます。
たとえば、名前が「場所」を参照するようにします。ワークシートを受信側のワークブックにドラッグすると、受信側のワークブックに定義された名前は使用されず、「場所」は送信側のワークブックの名前定義を参照し続けます。
受信側のブックにドラッグされたばかりのアクティブ シート上の古い場所を削除するマクロを作成できます。
ActiveWorkbook.Names("place").Delete
その場合、受信側のワークブックで既に定義されている名前が使用されます。