Excel指向具有id或命名锚点的网页位置的超链接

Gra*_*ham 14 excel vba hyperlink excel-vba

在Excel中,我可以创建指向网页的超链接.但是,如果URL包含#字符,则Excel始终将散列符号转换为空格连字符空格,以便链接不再起作用.网址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

QA *_*ive 6

这不是浏览器问题。MS Office 应用程序正在使用 # 替换为“-”(%20 是一个空格)来修改 URL。

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

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

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

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

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


Gra*_*ham 5

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

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

  • ...并将我的默认浏览器改回 Chrome 并没有恢复错误。电子表格没有变化,但行为不同。无论如何,问题解决了,但我不聪明! (2认同)
  • 我遇到了同样的问题,除了我可以通过将 Chrome 设置为我的默认浏览器来可靠地重现它,并通过将 IE 设置为我的默认浏览器来可靠地修复它。目前与微软非常交叉! (2认同)

Ste*_*010 0

您只需输入 URL 并按 Enter 键即可在单元格中创建超链接。如果 Excel 包含以下内容,则会将其识别为 URL

“.com”

和/或

“http://”

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