現在、キー/値のレイアウトを持つ「DataMap」というスプレッドシートがあります。キーは別のスプレッドシートとセルへの参照であり、値はユーザーが入力します。
たとえば、キー列には次の個別の参照が含まれる場合があります。
- = Sheet1!B25
- ='シート2'!B25
- = TableName [TableRowName]
このページには「データ転送」というボタンもあります。
「データ転送」を押すと、マクロが実行され、キー列によって参照されるセルに値がコピーされます。
このページのポイントは、「DataMap」シートがあるという事実を除けば、Excelワークブックの残りの部分についての知識がなくても、サードパーティシステムからデータを注入できる単一の場所を持つことです。
現在、「DataMap」のキーと値のペアの各行をループし、次のコードを使用して「= Sheet1!B25」に値を挿入できます。
reference = Replace(Sheets("MAPPINGS").Range("A" & row).Formula, "=", "")
refSplit = Split(reference, "!")
Sheets(refSplit(0)).Range(refSplit(1)) = Sheets("MAPPINGS").Range("B" & row).Value
文字列置換を使用すると、「='Sheet 2'!B25」の場合も処理できます。
ただし、名前付きテーブルで重大な問題が発生しています。
出来ますか?または、代わりに、「キー」列によって参照されるセルへの値のコピーを具体的に処理するためのより良い方法の提案がありますか(参照の形式に関係なく)?
ありがとう