我继承了一个带有多个工作表的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代码中,我可以看到隐藏的和可见的工作表。
答案 0 :(得分:4)
您可以通过转到公式选项卡并单击名称管理器或按 ctrl + F3 打开名称管理器,也可以粘贴名称列表以及按 F3 引用的名称。可能有必要首先取消隐藏名称。
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
这有帮助吗?