これを解決するためにいろいろ調べてみましたが、コーディングには詳しくありません。
これが私のコード行です。
='[WorkBook]BOM'!G6
私がやりたいのは、ワークブックをセルに呼び出して、検索と置換を使用せずにすべての「ワークブック」名を一括置換できるようにすることです。
基本的には次のようになります(このコードは動作しませんが、参考用です)
='[=E1]BOM'!G6
次に、セル E1 に任意のテキストを入力して、ワークブック名を置き換えることができます。これを行うための数式を探しています。
答え1
INDIRECT()
テキスト文字列を関数として評価するには、関数を使用する必要があります。
=INDIRECT("'["& E1 & "]BOM'!G6")
このINDIRECT()
関数は、参照されているワークブックが開いている場合にのみ値を返すことに注意してください。それ以外の場合は#REF!
エラーが返されます。
答え2
INDIRECT
閉じられた外部のブックでは機能しません。自動化の最善の方法は、ブックのパスをセルに入力し、古いブック名のすべての出現箇所を検索/置換して新しいブック名に置き換えるマクロを記述することです。
答え3
私の解決策では、最初に名前を付けた場合にのみ、範囲を参照できるようになります。
たとえば、ワークブック1の範囲A1:A100にMyRangeという名前を付けます。
次に、現在のワークブックのワークブック2のE1に「MyRange」と入力します。
INDIRECT(E1)を使用する