16

在 Excel 中,我可以创建指向网页的超链接。但是,如果 URL 包含 # 字符,Excel 总是将井号转换为空格-连字符-空格,因此该链接不再有效。URL http://www.example.com/page#location变为http://www.example.com/page%20-%20location

我试过三种方法

  1. 手动,右键单击单元格,单击“超链接”并在地址框中键入 URL

  2. 以编程方式,提供完整的 URL:

    Worksheets(1).Hyperlinks.Add Address:="http://www.example.com/page#location"

  3. 以编程方式,将位置作为“子地址”:

    Worksheets(1).Hyperlinks.Add Address:="http://www.example.com/page", SubAddress:="location"

这三个都给出了同样的问题。是否可以创建指向特定位置(id 或命名锚点)的链接而不仅仅是网页?如果有任何帮助,我将不胜感激。

注意:代码示例不完整;为了清楚起见,我省略了参数 Anchor 和 TextToDisplay。

Excel 版本:2010 (14.0.6126.5003) SP1

4

8 回答 8

6

这不是浏览器问题。MS Office 应用程序正在修改 URL,其中 # 被替换为 ' - '(%20 是一个空格)。

这个恼人的问题是微软自己承认的。从该页面引用:

当您创建超链接的文件的名称包含井号 (#) 时,可能会出现这些问题。

注意:井号是在文件名中使用的有效字符,但在 Office 文档的超链接中不被接受。

他们唯一的解决方法是删除有问题的 # 或从文档中复制和粘贴 URL……考虑到大多数人使用 # 的原因是为了让用户更容易找到内容,这太荒谬了。

要求 Microsoft 通过在此处投票来改进此行为:https ://office365.uservoice.com/forums/264636-general/suggestions/32273917-stop-mangling-urls- contains-a-so-we-can-link-t

于 2017-11-16T00:03:16.007 回答
5

这似乎是浏览器问题而不是 Excel 问题。从 Google Chrome 切换到 Internet Explorer 解决了这个问题。

谢谢大家的建议......只是说你没有发现同样的问题是促使我寻找其他地方的原因。

于 2013-07-15T15:47:01.397 回答
1

我可以通过使用 %23 代替 # (井号|井号)来解决这个问题。我的 URL 现在可以在 Excel 2013 中使用。“hovertext”在 URL 中显示 # 符号,但编辑链接会显示 %23。

http://www.example.com/page#location不工作

http://www.example.com/page%23location作品

于 2015-04-20T00:06:32.330 回答
1

我们发现的最佳解决方案是在不手动更改注册表项的情况下将 Internet Explorer 重置为默认浏览器。这会重置 url、协议和扩展关联并解决问题。

一旦你这样做了,即使将默认浏览器更改为 Firefox 并将其更改回 IE 也不会再次破坏它。

该解决方案比在注册表中“更干净”,并且已被记录为我们公司的官方解决方案。

于 2015-05-13T18:01:02.130 回答
1

不幸的是,在 Excel 中,我仍然遇到安全 URL 编码超链接的问题。

file://它们会工作一次,然后在您单击一次后 变为超链接,然后再次被破坏。

所以我使用了这个=Hyperlink()函数,一切都很好,因为 Excel 无法更改公式中连接的 URL 字符串。

耶,我赢了……

当文件处于受保护的视图中时,由于安全设置 或如果用户在 Outlook 中将文件作为附件预览,该#符号仍会变为%20-%20

在此处输入图像描述

在此处输入图像描述

由于我们的 IT 部门不允许我们安装其他浏览器,我们不能将 Internet Explorer 设为默认浏览器(因为它已经是)。

比较两台 PC,一台我能够更改默认浏览器与标准加载,我注意到标准加载中缺少以下注册表项。

解决方案: 另存为 Office Hyperlink Fix.reg(并双击)

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http]

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"Progid"="IE.HTTP"

将其添加到标准负载(每个用户都需要)后,链接可以正常工作!

这不是所有必需的注册表项,但足以让 IE 再次要求成为默认浏览器并添加其余的(HTTPS ...)。

于 2017-08-17T20:44:43.053 回答
0

您只需输入 URL 并按 Enter 即可在单元格中创建超链接。如果 Excel 有类似的东西,Excel 会将其识别为 URL

“.com”

和/或

“http://”

我试过你的问题,但没有得到它。您的网址可能还有其他问题。您可能希望发布与您实际使用的 URL 更相似的 URL(相同的字符类型)我也有 excel 2010。

于 2013-07-15T14:35:10.030 回答
0

我有一位同事%20-%20在 Word 2010 而不是 Excel 中遇到了这个确切的问题(包括错误)。

通过以下方式解决:

在 Internet Explorer 中:

  • 互联网选项
  • 程序选项卡
  • HTML 编辑器:确保这不是空白
于 2017-04-12T22:41:32.300 回答
0

如果问题涉及到 Share Point Server 门户的链接,您可以剪切部分超链接(在我的情况下,粗体部分:Beginning_of_the_address /_layouts/15/start.aspx# / End_of_address)。

对我来说工作正常(MSO 16 + SPS 2k16)。

于 2019-06-24T11:08:15.260 回答