Mezga有一系列包含超链接的单元格。这些超链接由诸如“单击此处”或“更多信息”之类的词组成。换句话说,每个超链接包含的显示文本与单击链接时激活的基础URL不同。 Mezga想知道是否存在一种无需使用宏即可提取每个超链接的基础URL并将该URL放入不同单元格的方法。

在不使用宏的情况下,您可以这样做:

。右键单击超链接。您会看到一个上下文菜单出现。

。从上下文菜单中,选择“编辑超链接”。 Excel将显示“编辑超链接”对话框。 (请参见图1。)

。从对话框的“地址”字段中选择并复制(Ctrl + C)整个URL。

。按Esc键关闭“编辑超链接”对话框。

。将URL粘贴到所需的任何单元格中。

请注意,这是针对单个超链接的。如果工作表中有一堆超链接,并且想要恢复URL,则需要对每个超链接执行此操作。显然,这会很快变得乏味。

无论是否喜欢,乏味的治疗都是一个宏。使用宏,获取超链接的基础URL是孩子的事。宏需要做的就是注意超链接的Address属性。

下面是一个宏的示例,该宏将在工作表中找到每个超链接,提取每个URL的URL,然后将该URL粘贴在单元格中直接位于超链接的右侧。

Sub ExtractHL()

Dim HL As Hyperlink     For Each HL In ActiveSheet.Hyperlinks         HL.Range.Offset(0, 1).Value = HL.Address     Next End Sub

除了“蛮力”宏,您还可以创建一个用户定义的函数,该函数将提取并返回指向它的任何超链接的URL:

Function GetURL(rng As Range) As String     On Error Resume Next     GetURL = rng.Hyperlinks(1).Address End Function

在这种情况下,您可以将其放置在所需的位置。例如,如果要在单元格C25中列出来自A1中超链接的URL,则在单元格C25中,您将输入以下公式:

=GetURL(A1)

注意:

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

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

本技巧(3281)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: