元のワークシートを参照せずにワークシート間で VLOOKUP を使用する

元のワークシートを参照せずにワークシート間で VLOOKUP を使用する

いくつかのマクロを実行して、他の多数のワークブックからシートのコピーを取得するワークブックがあります。ユーザーがプロジェクト フォルダーにコピーして、VLOOKUP毎回数式を設定することなく使用できる 1 つのファイルを設定しようとしています。ユーザーは、サーバーからプロジェクト フォルダーにファイル NewProject.xlsm をコピーし、マクロを使用して、サーバー上にある 100 シリーズ、110 シリーズ、または 120 シリーズのワークブックから必要なさまざまなシートを取得します。

100 シリーズのワークブックには、ItemsE というシートがあり、VLOOKUP2 つの列があり、別の列にデータ検証があります。ユーザーが 100_1A シートをプロジェクト ファイルに取り込むと、が取り込まれますVLOOKUPが、元のファイルを参照します。

NewProject ファイルにも、同じ情報がすべて含まれた ItemsE シートがあります。質問ですが、VLOOKUP100 シリーズのワークブックの 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

その場合、受信側のワークブックで既に定義されている名前が使用されます。

関連情報