Excel链接到带有id或命名锚点的网页位置

在Excel中,我可以创build超链接到网页。 但是,如果URL包含#字符,则Excel总是将散列符号转换为空格连字符空格,以便链接不再起作用。 urlhttp://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"

所有三个都给出了同样的问题。 是否有可能创build一个链接到一个特定的位置(编号或命名锚点)不只是一个网页? 我会很感激任何帮助。

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

Excel版本:2010(14.0.6126.5003)SP1

这似乎是一个浏览器问题,而不是一个Excel问题。 从谷歌浏览器切换到Internet Explorer解决了它。

谢谢大家的build议…只是说你没有find同样的问题是促使我看别处。

您只需在URL中input并按回车,即可在单元格中创build超链接。 如果它有类似的东西,Excel将把它识别为一个URL

“.COM”

和/或

“HTTP://”

我试过你的问题,没有得到它。 也许还有一些其他问题与您的url。 你可能想要发布一个更类似于你实际使用的URL(相同的字符types),我也有excel 2010。

我可以通过使用%23代替#(hashtag |英镑符号)来解决这个问题。 我的url现在在Excel 2013中工作。'hovertext'显示URL中的#符号,但编辑链接显示%23。

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

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

我们发现的最好的解决scheme,无需手动更改registry项,将Internet Explorer重置为默认浏览器。 这会重置url,协议和扩展关联并解决问题。

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

这个解决scheme比在registry中玩耍更“清洁”,并且已经被logging为我们公司的官方解决scheme。

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

解决了以下的方法:

在Internet Explorer中:

  • 互联网选项
  • 程序选项卡
  • HTML编辑器:确保这不是空白

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

他们会工作一次,然后在您点击一次后更改为file://超链接,并再次被打破。

所以我使用了=Hyperlink()函数,并且都很好,因为Excel无法在公式中更改串联的URLstring。

耶,我赢了…

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

在这里输入图像说明

在这里输入图像说明

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

比较两台电脑,我可以更改默认浏览器与标准负载,我注意到以下registry项从标准负载中缺less。

解决scheme: 另存为 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" 

将其添加到标准负载(每个用户所需的)后,链接无任何问题!

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

这不是浏览器问题。 MS Office应用程序正在使用#replace“ – ”(%20是空格)。

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

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

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

他们唯一的解决方法是删除违规的#或从文档复制和粘贴url…完全荒谬,考虑到大多数人会使用#的原因是为了让用户更容易find内容。

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