2017-08-02 9 views
0

名前付きタブを持つ複数のワークシートを含むExcelワークブックを継承しました。私はボタンと入力に応じて実行するいくつかのVBAコードを持っています。 VBAProjectとExcelオブジェクトのリストを比較すると、シートの名前がタブと一致します。これまでのすべての良い。Excelでのワークシート名マッピングの検索

ただし、VBAコード内およびスプレッドシート自体では、他のワークシートを参照します。それらはまだワークブックの一部であり、コードが作成された後、タブの名前が変更されたと思います。しかし、私はExcelがどのように接続を維持しているのか、もっと重要なのはどうやって接続を把握しているのか分かりません。

ので、例えば、私はVLOOKUPを持ってMiscDataRange

=IF((VLOOKUP(E4,MiscDataRange,4,0))="Y"... 

を意味している私はMiscDataRangeが何であるか知らないが、VBAコード内私は1つの参照を見つけます。ワークシート "Misc Interrupt"を指定した直後。名前付きタブではありません。

Worksheets("Misc Interrupt").Range("H2:H47") = "N" 'Reset to N at noon. 

    UpdateData 

    Range("MiscDataRange").ClearContents 

私はMiscIntと呼ばれるシートを持っている、そして「その他の割り込みは、」使用しているとMiscDataRangeが参照しているシートのように見えます。

私の知るところには穴があります。私は、MiscIntとMisc Interruptが同じワークシートであり、VLookupがMiscIntシートのデータを参照していると推測できます。しかし、私は推測に減らされます。私は同じものとしてそれらの2つをマップするファイル内の何かを見つけることができません。私はそれを見つけるためにどこを見ますか?

この質問は、単にVLookupを持っていて、VBAコード:Non-existent Excel Worksheet, but Formulas and Defined names still work?を見ていないこと以外は、関連しているようです。さらに、VBAコードから、私は隠れて見えるワークシートを見ることができます。

+0

'範囲( "MiscDataRange")。ClearContents'は、任意の特定のシートを参照しません。コード実行時にアクティブなシートを使用します。 – jsotola

+0

'Range(" MiscDataRange ")、ClearContents'または' Range( "MiscDataRange")を実行するとどうなりますか? – jsotola

+0

すべてのワークシートの表示を非表示にします – jsotola

答えて

4

あなたは、式のタブに行くと名マネージャーをクリックするか、CTRL + F3を押して、名前マネージャを開くことができます。また、名前と何名がF3を押すことにより、参照のリストを貼り付けることができます。最初に名前を再表示する必要があるかもしれません。

enter image description here

Sub ShowAllNames() 
    Dim n As Name 
    For Each n In ThisWorkbook.Names 
     n.Visible = True 
    Next 
End Sub 
+0

いいね! ** 'F3' **その後**ペーストリスト**は私が知らなかったものです!私は1000の名前付き範囲(多くは重複している)を持つマクロでテンプレートをトラブルシューティングしなければならなかったときに同じ詳細を抽出するマクロを書きました。 **表**の名前とその範囲は表示されません。 – PatricK

+0

ありがとう!あなたの 'Range(" MiscDataRange ")。Address(External:= True)'コメントにスポットがありました。 –

+0

私は数式名マネージャー(私の中に#REFsがたくさんある!)を見て、サブを作ってそれを実行しました。しかし、あなたがクリックしているものが、サブの結果を示しているかどうかはよく分かりません。それが名前のマネージャーと同じであれば、私はそれが必要ないと思います。 – thursdaysgeek

2

私があなたの質問を理解していれば、それらの名前付き範囲がどこにあるのか探したいと思っています。

あなたはこのように、サブを使用することができます。

Sub t() 
Debug.Print "Sheet: " & Range("testNamedRange").Parent.Name 
Debug.Print "Full Location: " & Range("testnamedrange").Name 
Debug.Print "File path: " & Range("testnamedrange").Worksheet.Parent.Path 
End Sub 

はその助けをしていますか?

関連する問題