如何根据单元格的值有条件地创建超链接

如何根据单元格的值有条件地创建超链接
ColA                  Col B              ColC
Project A            A.pdf               A.pdf
Project B                                No Link

我有一份项目记录列表。其中一列(例如 B)可能引用了 pdf 文件。如果我创建一个公式

=if(isblank(B2),"No Link",hyperlink(folderURL + B2),B2)

我想要的是仅在 B 列包含 pdf 引用的行上放置超链接,并插入文本“无链接”。我得到了正确的文本值,但所有行都具有 hyperlnk 默认外观和行为 - Excel 似乎在“无链接”单元格中创建了“幻像链接”。

在此处输入图片描述

单击 C 列中的“无链接”值将尝试打开 B 列中列出的文件,但会返回未找到文件的错误。

答案1

目前尚不清楚这是否是一个错误;但 Excel 似乎只是因为公式中有一个函数而使整个单元格可点击,HYPERLINK以便它能够正常工作。右键单击单元格并选择移除超链接似乎也不起作用。

我似乎找不到非 VBA 解决方案来阻止 Excel 创建那些“幻影”超链接,但这里有一个解决“无法打开指定文件”错误的权宜之计:

=IF(ISBLANK(B2),HYPERLINK("#"&CELL("address"),"NO LINK"), HYPERLINK(folderURL & B2,B2))

如果单元格为空,公式不会只显示“无链接”,而是B2创建一个指向单元格本身的超链接。单元格仍可点击,但不会显示错误消息。

来源:http://www.excelforum.com/excel-programming-vba-macros/340575-solved-conditional-hyperlink.html

答案2

这并不是原作者想要做的,但对我来说很有用

=IF(ISBLANK(B2),HYPERLINK("#"&CELL("address"),""), HYPERLINK("http://someurl","friendly_link_name"))

当没有链接时,您会得到一个空的、不可点击的单元格。

答案3

对我来说有效:

=IF(ISBLANK(B2);HYPERLINK(CONCATENATE("#"; ADDRESS(ROW();COLUMN()));"NO LINK"); HYPERLINK(folderURL & B2;B2))

使用CONCATENATE("#"; ADDRESS(ROW();COLUMN()))虚拟超链接使得完整的公式可以感知上下文。

相关内容