Wendy有一个Excel工作表,其中包含1200多个TIFF文件的超链接。 (这些是超链接,而不是常规链接。)Excel出现故障,必须关闭,因此Emily使用自动保存的文件来恢复以前保存的文件。现在,所有先前可用的超链接均不起作用。她在共享的网络驱动器上具有指向图像的超链接,但是AutoSave更改了超链接以引用C:驱动器。她想知道是否有一种简单的方法可以将它们修复回共享网络驱动器。

乍一看,您似乎可以使用Excel的常规查找和替换功能来查找硬盘驱动器名称(如在文件:// c:中)并用网络驱动器替换(如在文件:// shareddrive中)。问题在于该方法仅解决了部分问题,它仅更改了超链接的显示部分,而不更改基础超链接本身。获得超链接本身的唯一方法是使用宏。

假设所有需要更改的超链接都在同一工作表上,则可以使用以下宏:

Sub FixHyperlinks1()

Dim wks As Worksheet     Dim hl As Hyperlink     Dim sOld As String     Dim sNew As String

Set wks = ActiveSheet     sOld = "c:\"      sNew = "S:\Network\"

For Each hl In wks.Hyperlinks         hl.Address = Replace(hl.Address, sOld, sNew)

Next hl End Sub

您需要做的就是更改分配给sOld和sNew变量的值。如果在尝试运行宏时遇到错误(包含“替换”功能的行出现错误),这是因为替换功能并非在所有版本的Excel中都可用。在这种情况下,应改用以下宏:

Sub FixHyperlinks2()

Dim wks As Worksheet     Dim hl As Hyperlink     Dim sOld As String     Dim sNew As String

Set wks = ActiveSheet     sOld = "c:\"      sNew = "S:\Network\"

For Each hl In wks.Hyperlinks         hl.Address = Application.WorksheetFunction. _             Substitute(hl.Address, sOld, sNew)

Next hl End Sub

请注意,唯一的区别是使用了替代工作表功能。

注意:

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

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

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