我有一个包含 260 个单元格的电子表格,其中包含不同的超链接。有没有办法以编程方式更改链接,而不是编辑每个链接?
260 个超链接都是唯一的,需要更改为其他唯一值。每个链接的开头都添加了文本。现有链接(作为示例)是,javascript:go("http...")
我需要从每个链接中删除javascript:go("
and 。")
答案1
我认为你需要更具体说明你想要做什么。是否有许多超链接都指向一个或两个位置,而你想更改它们全部,或者有许多不同的超链接,而你正准备将每个超链接更改为另一个唯一的超链接。无论你的问题是什么,我认为这个小小的 Excel 插件可能会对你有所帮助:
它可以解决像您遇到的问题那样的事情。
还有这个论坛,专门讨论 Excel 问题,你一定能在不到 5 小时内得到解决:
答案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 将我的双引号更改为%22
URL 清理版的双引号。在这种情况下,您希望您的代码如下所示:
hl.Address = Replace(hl.Address, "javascript:go(%22" , "")
hl.Address = Replace(hl.Address, "%22)", "")
要运行此代码,请按Alt+F11调出 VBA 窗口,然后将其粘贴到新模块或现有模块中。如果您只打算运行一次,只需单击此代码中的任意位置,然后按 即可F5运行。如果您需要多次运行此代码,您可能需要将宏分配给按钮。