0

ブック 1 からブック 2 にすべてのシートをコピーするコードがあります。シートを数回コピーするため、コピーしたシート名の前に 001_、002_ などを追加して名前を変更します。すべてのシートにドロップダウン メニューがあります。問題は、それらが以前のワークブックに参照されており ([式] --> [名前の管理])、機能していないことです。

コピーするシートは 5 つあり、そのうちの 4 つはシート TypeLists からドロップダウン メニューの値を取得しています。このシートは 1 回だけコピーされるため、ブック 2 に既に存在する場合、コードはコピーしません。

レコード マクロを使用して、参照の 1 つを変更すると、次のようになりました。

ActiveWorkbook.Worksheets("003_TDT").Names("List_DataType").RefersToR1C1 = _
    "=TypeLists!R3C14:R5C14"

私がしたことは、式->名前マネージャーに行き、参照の1つを次から変更したことです。

='C:\Users\z183464\Desktop[seq_tdt_template.xlsx]TypeLists'!$N$3:$N$5

に:

=TypeLists!$N$3:$N$5

私の質問は次のとおりです: Book1/TypeLists から Book2/TypeLists へのすべての参照を変更するマクロを作成するにはどうすればよいですか?

乾杯!

4

1 に答える 1

0

このコードを使用できます。定義されたすべての名前を繰り返し処理し、不要な部分が抽出された同じ値への参照を変更します ("" に置き換えられます)。

これはマクロではなく、VBA です。VBA エディタ (Alt+F11) に挿入する必要があります。

Sub replaceNameValues()
    Dim oName As Excel.Name
    For Each oName In ThisWorkbook.Names
        oName.RefersTo = Replace(oName.RefersTo, "C:\Users\z183464\Desktop[seq_tdt_template.xlsx]", "")
    Next
End Sub

よろしく、

于 2013-08-12T07:48:32.443 に答える