名前付き範囲が参照するアドレスを変更しようとしています。ワークブックには同じ名前の 2 つの範囲があり、1 つはワークブックをスコープとし、もう 1 つは をスコープとしていSheetA
ます。私はこのコードを使用しています:
Sub changeNamedRangeAddress(bk As Workbook, rangeName As String, newRange As Range)
bk.Names(rangeName).RefersTo = newRange
End Sub
イミディエイト ウィンドウで の値を見ると、bk.Names(rangeName)
その名前のグローバル バージョンを参照しているように見えます。これは、以下が true を返すためです。
?typeof bk.Names(rangeName).Parent is Workbook
しかし、サブルーチンの実行後、ローカル スコープ バージョンのアドレスは のアドレスに変更されnewRange.address
、グローバル バージョンは同じままです。
グローバルな名前付き範囲を確実に.RefersTo
ターゲットにするために他にできることはありますか?
編集: ローカル スコープの名前付き範囲が参照するシートは、このスクリプトの実行時にアクティブになります。