2017-08-02 40 views
0

我繼承了一個帶有幾個工作表的Excel工作簿,所有工作表都帶有命名選項卡。我有一些VBA代碼根據按鈕和輸入運行。當我比較VBAProject和Excel對象列表時,工作表名稱與選項卡匹配。迄今爲止都很好。在Excel中查找工作表名稱映射

但是,在VBA代碼和電子表格本身中,它指的是其他工作表。它們仍然是工作簿的一部分,我認爲代碼已創建,然後標籤被重命名。但我不知道Excel如何保持連接,或者更重要的是,我應該如何確定連接。

所以,舉例來說,我有指MiscDataRange

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

我不知道MiscDataRange是什麼VLOOKUP,但VBA代碼中我發現一個參考。在指定工作表「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工作表上的數據。但我減少猜測。我無法在映射這兩個文件的文件中找到任何相同內容。我會在哪裏找到這個?

這個問題似乎有關,除了他只是一個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' **然後** Paste List **是我不知道的東西!我寫宏以提取相同的細節,當我不得不使用具有超過1000個命名範圍的宏(許多是重複的)對模板進行疑難解答時。唯一缺點是不能顯示**表格名稱及其範圍。 – PatricK

+0

謝謝!你的'範圍(「MiscDataRange」)。地址(外部:=真)'評論是現貨。 – 2017-08-02 23:24:26

+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 

這是否幫助?