我在 Excel 中有以下信息:
Part Number Part Name
199-102-002-B Miniature Angle Mount Riser Block
199-102-092-C Pinned Beamsplitter Mount
199-102-011-C Camera Sleeve
199-102-032-D 1mm Aperture
199-102-081-D VIS Attachment Plate
零件编号可用于查找零件的文件位置,我创建了一个函数 ( MyPath()
),当给定零件编号时,该函数将返回零件文件夹的路径。我希望让用户只需单击第二列中的文本即可打开零件文件夹。
使用以下公式,我可以使链接正常工作,但文本只是零件编号,而不是零件名称:
=HYPERLINK(MyPath(A2),A2)
使用此公式,零件名称可以正确显示,当我将鼠标悬停在单元格上时,我的光标会变成一只手,就像那里有一个超链接一样,但单击它不会执行任何操作。
=HYPERLINK(MyPath(A2),VLOOKUP(A2,PartsArray,2,FALSE))
以下是我测试过并且有效的其他变体:
=HYPERLINK("C:\The\Path\To\The\Part\Folder","Miniature Angle Mount Riser Block")
=HYPERLINK(MyPath(A2),"Miniature Angle Mount Riser Block")
=HYPERLINK("C:\The\Path\To\The\Part\Folder",VLOOKUP(A2,PartsArray,2,FALSE))
=HYPERLINK(MyPath(A2),C2) <--- Where "C2" contains the VLOOKUP function
仅当我同时使用自定义函数和该VLOOKUP()
函数时超链接才会停止工作。
此时,我发现最接近解决方案的是我在上面显示的最后一个变体中所做的操作(即将VLOOKUP
公式的一部分移动到另一列,然后隐藏该列)。但这肯定有某种解释。有人能向我解释发生了什么吗?
编辑:
该VLOOKUP
函数引用了单独工作表上的数组,其中包含将要使用的所有零件。此工作表的目的是使装配区中的某个人能够输入零件编号,并在相邻单元格中显示零件名称。我想我可以VLOOKUP
使用该函数MATCH
(与其他几个函数结合使用)重新创建该函数,但我宁愿找出真正的问题并修复它,而不是盲目地寻找很可能不会解决任何问题的解决方案。
答案1
显然,该HYPERLINK
函数确实不喜欢引用未打开的外部工作簿(请参阅这帖子中提供了另一个函数中断的示例)。因此,我能想到的最佳解决方案是将对外部工作簿的引用移动到工作簿中的另一个单元格。我知道的唯一其他选项是创建一个宏,在所需单元格本身上创建超链接。但是,如果您想在工作表中拥有许多超链接,或者您事先不知道需要超链接的文本在哪里,那么这不是很方便。