自动将超链接从一个单元格应用到另一个单元格

自动将超链接从一个单元格应用到另一个单元格

我有一个工作簿,其中有一列包含发布到网站的不同文档的标题 (B4:B6)。另一列包含这些文档的 URL (C4:C6)。该 URL 是在文档上传时由网站创建的,并且始终会在 URL 后附加一个事先无法预测的数字。

示例电子表格

我有一个用户,他习惯于手动将超链接插入包含标题的单元格,以便标题单元格指向 URL。他希望标题单元格具有超链接,理解需要将超链接放在自己的单元格中以供参考,但不想重新输入或复制粘贴 URL。我如何设置 URL 单元格 (C4:C6) 以检查标题单元格中是否有嵌入的超链接,如果找到,则将其复制到相应的 URL 单元格中?

或者,我如何设置标题单元格来检查 URL 单元格中的文本,如果找到文本,则自动将该文本作为超链接应用到相应的标题单元格中?

最糟糕的是,如果不使用 VBA/宏,我该如何做到这一点?

换一种方式:

当前状态:用户手动将超链接应用于 B 列中的标题。用户还在 C 列中手动输入 URL 文本。

期望状态(选项 1):用户手动将超链接应用于 B 列中的标题。URL 文本会自动从超链接中提取(而不是标题文本),并放置在 C 列中。

期望状态(选项 2):用户在 C 列中手动输入 URL 文本。该 URL 将自动作为嵌入的超链接应用于 B 列中包含标题的单元格中。

如果有必要的话,辅助列也是很好的。

答案1

如果您想使用公式和链接不遵循简单的模式,那么您需要将标题复制到另一列(或工作表)中并在公式中引用它们hyperlink

HYPERLINK("link","copied_title")

往下看;excel_屏幕截图

对于其他所需选项,您仍然必须使用,VBA但也许只有用户定义的选项就足够了,正如本文中的一个答案中所述主题:从超链接中提取 URL


VBA 解决方案


如果您对 VBA 感兴趣,那么以下内容会有所帮助:

Sub hyperlink_title()
    Dim i As Integer
    Dim wsh as Worksheet
    Set wsh = ThisWorkbook.ActiveSheet

    i = 4
    With wsh
    While .Cells(i, 2) <> ""

        ActiveSheet.Hyperlinks.Add Anchor:=.Cells(i, 2), Address:=.Cells(i, 3).Value, _
        TextToDisplay:=.Cells(i, "B").Value2

        i = i + 1

    Wend

End Sub

答案2

此公式将查看单元格,如果存在超链接(使用公式Hyperlink()),则将返回 URL。如果没有链接,只有文本,则它会创建一个指向的链接http://www.fakewebsite.com/[text]

=IFERROR(MID(FORMULATEXT(A2),SEARCH("http",FORMULATEXT(A2)),SEARCH(",",FORMULATEXT(A2))-SEARCH("http",FORMULATEXT(A2))-1),HYPERLINK("http://www.fakewebsite.com/"&SUBSTITUTE(A2," ","-")))

注意:如果没有“http”,只需将上述公式中的“http”替换为“www”即可。其工作原理如下:

在此处输入图片描述

编辑:根据澄清,这将从“文档标题”列中提取一个链接,如果没有链接,则只放置一些文本:

=IFERROR(MID(FORMULATEXT(A2),SEARCH("http",FORMULATEXT(A2)),SEARCH(",",FORMULATEXT(A2))-SEARCH("http",FORMULATEXT(A2))-1),"No Link")

相关内容