在Excel中查找工作表名称映射

时间:2017-08-02 22:14:32

标签: excel vba excel-vba excel-2016

我继承了一个带有多个工作表的Excel工作簿,所有工作表都带有命名选项卡。我有一些VBA代码根据按钮和输入运行。当我比较VBAProject和Excel对象列表时,工作表的名称与选项卡匹配。到目前为止一切都很好。

但是,在VBA代码和电子表格本身中,它指的是其他工作表。它们仍然是工作簿的一部分,我认为代码已创建,然后重定向选项卡。但我不知道Excel如何保持连接,或者更重要的是,我应该如何弄清楚连接。

所以,例如,我有一个引用MiscDataRange的VLOOKUP

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

我不知道MiscDataRange是什么,但在VBA代码中我找到了一个引用。在指定工作表" Misc Interrupt"之后,这不是任何指定的选项卡。

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

    UpdateData

    Range("MiscDataRange").ClearContents

我确实有一张名为MiscInt的工作表,它似乎是一张工作表" Misc Interrupt"正在使用,MiscDataRange正在引用。

我的问题是我的知识存在漏洞 - 我可以猜测MiscInt和Misc Interrupt是相同的工作表,VLookup指的是MiscInt表上的数据。但我很难猜测。我在文件中找不到将这两个映射为相同的内容。我想在哪里找到它?

这个问题似乎有关系,除了他只是一个VLookup,并没有查看VBA代码:Non-existent Excel Worksheet, but Formulas and Defined names still work?。另外,从VBA代码中,我可以看到隐藏的和可见的工作表。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

这有帮助吗?