如何以编程方式更改 Excel 中的超链接

如何以编程方式更改 Excel 中的超链接

我有一个包含 260 个单元格的电子表格,其中包含不同的超链接。有没有办法以编程方式更改链接,而不是编辑每个链接?

260 个超链接都是唯一的,需要更改为其他唯一值。每个链接的开头都添加了文本。现有链接(作为示例)是,javascript:go("http...")我需要从每个链接中删除javascript:go("and 。")

答案1

我认为你需要更具体说明你想要做什么。是否有许多超链接都指向一个或两个位置,而你想更改它们全部,或者有许多不同的超链接,而你正准备将每个超链接更改为另一个唯一的超链接。无论你的问题是什么,我认为这个小小的 Excel 插件可能会对你有所帮助:

kutools for excel

它可以解决像您遇到的问题那样的事情。

还有这个论坛,专门讨论 Excel 问题,你一定能在不到 5 小时内得到解决:

Excel 论坛

答案2

您可以使用以下代码替换部分地址来修复所有超链接:

Sub ClearHyperlinks()
Dim hl As Hyperlink

For Each hl In Worksheets("Sheet1").Hyperlinks
    hl.Address = Replace(hl.Address, "javascript:go(", "")
    hl.Address = Replace(hl.Address, ")", "")
Next hl

End Sub

每个Replace()语句都可用于删除特定的字符集。在本例中,第一个语句删除javascript:go(,第二个语句删除)。如果需要删除其他字符,只需将它们合并到语句中或按照相同模式添加新行即可。您可能需要做一些棘手的事情来删除任何引号,因为它们也被代码本身使用。要删除双引号,您可以将行更改为:

hl.Address = Replace(hl.Address, "javascript:go(" & Chr(34), "")
hl.Address = Replace(hl.Address, Chr(34) & ")", "")

Chr(34)是双引号的代码。但是,当我刚才使用它时,Excel 将我的双引号更改为%22URL 清理版的双引号。在这种情况下,您希望您的代码如下所示:

hl.Address = Replace(hl.Address, "javascript:go(%22" , "")
hl.Address = Replace(hl.Address, "%22)", "")

要运行此代码,请按Alt+F11调出 VBA 窗口,然后将其粘贴到新模块或现有模块中。如果您只打算运行一次,只需单击此代码中的任意位置,然后按 即可F5运行。如果您需要多次运行此代码,您可能需要将宏分配给按钮。

相关内容