乔治经常在他的工作表中插入超链接。这些超链接指向驻留在其计算机系统上的各种类型的文件。当他插入超链接时,Excel插入的默认超链接文本是文件的完整路径和文件名。乔治希望此超链接文本默认情况下仅包含文件名,而不包含完整路径。

有一种非常简单的方法可以实现所需的结果:只需将工作簿与您想要超链接的文件移动到同一文件夹中。使用“插入超链接”对话框时,然后使用文件名(不带路径)作为链接。

如果那不可行,则使用“插入超链接”对话框会导致完整路径最终以“插入超链接”对话框的“地址”字段和“要显示的文本”字段结尾。无法更改此默认行为。您只能编辑Excel建议的默认值。这意味着您可以在单个超链接的基础上,编辑“插入超链接”对话框中的“要显示的文本”字段,以便根据需要仅显示文件名。

当然,这涉及到大量的编辑工作,因此推动了George的查询。有两种解决方法。第一个是不依赖于“插入超链接”对话框。而是构造一个使用HYPERLINK函数插入超链接的公式。例如,假设您在单元格C2中具有包含文件的文件夹的路径名:

C:\Users\allen\Desktop\

此外,您可能具有D2:D75范围内的文件名列表,例如:

MyWorkbook.xlsx MyDocument.docx MyPDF.pdf

您可以将这样的公式放在单元格E2中:

=HYPERLINK($C$2 & D2,D2)

将公式复制到E3:E75范围内,您将拥有所需的超链接。

如果您已经在电子表格中有一堆插入的链接(例如,在A列中),则可以使用更大的公式来提取并仅显示文件名:

=HYPERLINK(A1,SUBSTITUTE(A1,LEFT(A1,FIND(CHAR(1),SUBSTITUTE(A1, "\",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))))),""))

然后,您可以隐藏包含全路径超链接的列,以便仅看到所需的缩短版本。

如果您有许多要影响的超链接,则可以使用宏从所有现有的超链接中删除路径。

Sub FixHyperlinkDesc()

Dim h As Hyperlink     Dim sRaw As String     Dim iPos As Integer

For Each h In ActiveSheet.Hyperlinks         sRaw = h.TextToDisplay         iPos = Instr(1, sRaw, "\")

While (iPos > 0)

sRaw = Mid(sRaw, iPos + 1, Len(sRaw))

iPos  = Instr(1, sRaw, "\")

Wend         If sRaw <> h.TextToDisplay Then             h.TextToDisplay = sRaw         End If     Next h End Sub

宏触摸的唯一内容是每个超链接的显示文本,并且删除最后一个反斜杠之前的所有内容。该宏不会影响HYPERLINK函数的结果。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(13279)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。