在Excel中,我可以创建指向网页的超链接。但是,如果URL包含#字符,则Excel始终将散列符号转换为空格连字符空格,以便链接不再起作用。网址http://www.example.com/page#location变为http://www.example.com/page%20-%20location
我尝试过三种方式
手动,右键单击一个单元格,单击“超链接”并在地址栏中键入URL
以编程方式提供完整的网址:
Worksheets(1).Hyperlinks.Add Address:="http://www.example.com/page#location"
以编程方式将位置作为“子地址”:
Worksheets(1).Hyperlinks.Add Address:="http://www.example.com/page", SubAddress:="location"
这三个都给出了同样的问题。是否可以创建指向特定位置(id或命名锚点)的链接,而不仅仅是网页?我将不胜感激任何帮助。
注意:代码示例不完整;为清楚起见,我省略了参数Anchor和TextToDisplay。
Excel版本:2010(14.0.6126.5003)SP1
答案 0 :(得分:5)
它似乎是一个浏览器问题,而不是Excel问题。从Google Chrome切换到Internet Explorer解决了这个问题。
感谢大家的建议...只是说你没有发现同样的问题是促使我去其他地方的原因。
答案 1 :(得分:3)
这不是浏览器问题。 MS Office应用程序正在修改URL,其中#替换为“ - ”(%20是空格)。
Microsoft themselves承认这个恼人的问题存在。引用该页面:
当您创建超链接的文件名包含井号(#)时,可能会出现这些问题。
注意:井号是在文件名中使用的有效字符,但在Office文档的超链接中不被接受。
他们唯一的解决方法是删除违规#或复制并粘贴文档中的网址...完全荒谬,考虑到大多数人使用#的原因是为了让更容易用户查找内容。
请求Microsoft通过在此投票改进此行为:https://office365.uservoice.com/forums/264636-general/suggestions/32273917-stop-mangling-urls-containing-a-so-we-can-link-t
答案 2 :(得分:1)
我们发现的最佳解决方案是将Internet Explorer重置为默认浏览器,而无需手动更改注册表项。这会重置URL,协议和扩展关联并解决问题。
一旦你这样做,即使将默认浏览器更改为Firefox并将其更改回IE也不会再次破坏它。
这个解决方案更清洁"而不是在注册表中玩,并已作为我们公司的官方解决方案登录。
答案 3 :(得分:0)
只需键入URL并按Enter即可在单元格中创建超链接。如果它具有
之类的内容,Excel会将其识别为URL“com”
和/或
“HTTP://”
我尝试过你的问题并没有得到它。也许您的网址存在其他问题。您可能希望发布一个更类似的URL到您实际使用的URL(相同的字符类型)我也有excel 2010。
答案 4 :(得分:0)
通过使用%23代替#(hashtag | pound符号),我能够解决这个问题。我的网址现在可以在Excel 2013中使用。' hovertext'在URL中显示#符号,但编辑链接会显示%23。
http://www.example.com/page#location
不起作用
http://www.example.com/page%23location
有效
答案 5 :(得分:0)
我有一个同事在Word 2010而不是Excel中遇到这个问题(包括%20-%20
错误)。
解决了以下方式:
在Internet Explorer中:
答案 6 :(得分:0)
不幸的是,在Excel中,我仍遇到安全URL编码超链接的问题。
它们可以工作一次,然后在您点击一次后更改为file://
超链接,并再次被破坏。
所以我使用了=Hyperlink()
函数,一切都很好,因为Excel无法更改公式中的连接URL字符串。
是的,我赢了...... nope
文件位于受保护的视图时,由于 安全设置
或者,如果用户 在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 ...)。
答案 7 :(得分:0)
如果问题涉及到Share Point Server门户的链接,则可以剪切部分超链接(在我的情况下为粗体: Beginning_of_the_address / _ layouts / 15 / start.aspx# / 地址的结尾)。
对我来说工作正常(MSO 16 + SPS 2k16)。