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

我已经inheritance了一个带有几个工作表的Excel工作簿,所有工作表都带有命名标签。 我有一些VBA代码根据button和input运行。 当我比较VBAProject和Excel对象列表时,工作表名称与选项卡匹配。 迄今为止都很好。

但是,在VBA代码和电子表格本身中,它指的是其他工作表。 他们仍然是工作簿的一部分,我认为代码已经创build,然后标签被重命名。 但是我不知道Excel如何保持联系,或者更重要的是,我应该如何找出联系。

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

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

我不知道MiscDataRange是什么,但在VBA代码中find一个引用。 在指定工作表“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工作表上的数据。 但是我减less了猜测。 我无法在映射这两者的文件中find任何相同内容。 我会在哪里find这个?

这个问题似乎相关,除了他只是一个VLookup,并没有看VBA代码: 不存在的Excel工作表,但公式和定义名称仍然工作? 。 另外,从VBA代码中,我可以看到隐藏的和可见的工作表。

您可以通过转到公式选项卡并单击名称pipe理器或按Ctrl + F3来打开名称pipe理器,或者您可以通过按下F3来粘贴名称列表和名称。 可能有必要先取消隐藏名称。

在这里输入图像说明

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

如果我理解你的问题,你正在寻找那些命名范围。

你可以使用这样的子:

 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 

这有帮助吗?