在Excel中单击时,超链接从#更改为%20-%20

我在Excel 2013工作表中有一个链接到内部网站的超链接。 当我右键单击并select“编辑超链接”,我看到这在地址栏(这是正确的):

https://myserver.company.com/home/default.html#article?id=1203291003

但是,当我离开单击,中间单击或右键单击 – >打开超链接我得到相同的行为:IE11打开,我得到一个HTTP 404错误,因为没有find链接(如下所示)。

https://myserver.company.com/home/default.html%20-%20article?id=1203291003

什么可以将#转换为%20-%20 ? 这很奇怪,因为%20是一个空格,URL中没有空格。

这是MS Excel的已知问题 。 基本上,哈希/磅( # )符号是在文件名中使用的有效字符,但不能在Office文档的超链接中接受 。 转换为%20-%20似乎是devise。

但是,请看一下这个问题,突出显示相同的问题,但使用Excel 2010:

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

这似乎暗示它可能是IE的浏览器问题。 如果您可以将其他浏览器设置为默认设置,即使暂时进行testing,也可以使用。

我相信这可能是对某些人的帮助,所以我说ID发布:我有同样的问题,Word和作为一个工作,我使用了一个URL编码器做一个快速search一个有很多如这里:

http://www.w3schools.com/tags/ref_urlencode.asp

只需粘贴url,它将返回将从Word Excel等超链接工作的Url。

投给我,如果你觉得有用。

有一个解决方法:

将HKEY_CLASSES_ROOT.htm键的默认值“htmlfile”更改为另一个值,即“IEhtml”。

这个答案是基于以下文章,并在MS Escel 2010中为我工作: http ://answers.microsoft.com/en-us/office/forum/office_2013_release-word/word-2013-hyperlink-converting-to-20 -20 / 4e8a2e8d-b889-4c77-8276-551b11e296d4

解决方法:另存为PDF

如果是客户端,只读,不需要它在Excel / Word格式,你可以保存为PDF文件。 超链接“#”将在PDF阅读器中工作。 例如: http : //help.overdrive.com/#videos?ade

这不适用于我试过的机器。 下面的项目或过程更改在我的一端纠正了这个问题。

在MS Word超链接中,#变成%。 这是在64Bit Win7操作系统上运行IE 11时发生的事情。 带有#符号的超链接的Word文档引起了我相信的问题。

尝试使用错误404失败的Word文档的超链接,如下所示: http://iservice.prv/eng/imit/catalogue/software_application_service.shtml#outlook_text

现在把结尾附近的#符号改成一个/然后超链接在IE 11中从一个单词文档中打开,就像下面修正的超链接一样。 HTTP://iservice.prv/eng/imit/catalogue/software_application_service.shtml/outlook_text

当我们使用自助服务网站及其内容进行支持规格更新时,请确保在将支持规范词汇文档中的链接作为embedded式超链接使用/应对之前,将其中的任何链接更改为/斜线。

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

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

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

在Excel 2013中,您可以使用encodeurl(url)函数。

例

资料来源: http : //versitas.com/blog/two-easy-ways-to-encode-urls-in-excel/

然后,您可以将编码的URL传递给hyperlink(link_location,[friendly_name])函数以显示更可读的URL。

我在Outlook中将报告粘贴到新邮件中,超链接正常工作。 粘贴到Word时不起作用,也没有从Outlook粘贴到Excel中。 (所有三个应用程序都使用Office Professional Plus 2010)。

我后来遵循了关于默认浏览器的build议。 我进入了Chrome,并将其设为我的默认设置。 然后closuresChrome。 然后进入IE并将其设为我的默认值。 没有重启。 链接工作。

我有一个用户无法打开使用IE浏览器在URL中包含#的链接网站。 她可以用Chrome和Firefox打开。 其他人可以用IE,Chrome和Firefox打开。

我调查了http_user_agent值我的版本,并发现:HTTP_USER_AGENT = Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 6.1; WOW64; Trident / 6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)

我发现她的版本有这个价值:

HTTP_USER_AGENT = Mozilla / 5.0(兼容; MSIE 10.0; Windows NT 6.1; WOW64; Trident / 6.0)

关键词是兼容的; MSIE 10.0(我的读取兼容; MSIE 7.0)。 当我打开IE开发者工具时,我发现浏览器的默认文档标准设置是IE7标准。 她浏览器中的默认设置是IE10标准。 当她将其文档设置更改为IE7标准时,closures浏览器,然后单击Excel中的链接,即可在IE中正确打开页面。

在我们的企业环境中,我们使用IE作为默认浏览器,默认情况下我们已经打开了兼容性视图,但不知怎的,她的设置已经改变了。 它确实给出了公正的警告,将来哈希(#)可能在URL中有问题。

这似乎是IE浏览器的具体情况,在Chrome浏览器的URL工作正常。

但是我发现添加ENCODEURL()解决了我的问题。

原始版本:

 =IFERROR(HYPERLINK(VLOOKUP(B12,Table1,13,0),"Click Me"),"") 

修正版本:

 =IFERROR(HYPERLINK(ENCODEURL(VLOOKUP(B12,Table1,13,0)),"Click Me"),"") 

这真的很烦人,但有一个简单的解决方法:不要使用#的URL,但使用一个URL简短的服务,如https://goo.gl/

每当Excel在超链接中看到一个“#”符号,它就会尝试将其解释为相对引用或“魔术散列”。 看到这个: http : //www.myonlinetraininghub.com/excel-factor-18-dynamic-hyperlinks-and-the-magic

但是,如果你的超链接有一个'#'符号,而你不打算使用这个奇特的Excelfunction,这是不好的。 你能做什么?

Excel创build超链接时,Excel将“#”解释为“魔术#”。 但是,如果您在Excel的对象模型中创build超链接,或者在Excel的对象模型中修改现有超链接的地址,则可以将不可思议的#强制转换为Excel,MS Word或任何其他通常具有问题。

我做了一些Excel代码,这自动为一个工作表包含列A充满磅地址(仅文本),它填充列B与新的工作超链接的工作表。 我能够成功地将这些超链接粘贴到Word和Outlook中。

 Sub Make_Column_A_into_hyperlinks_hashmarkworkaround() 'Column "A" contains the text of links to some files. 'This subroutine will turn those cells into Excel hyperlinks... '...and then correct the hyperlinks in case Excel misinterpreted 'a # mark which had originally occurred in the filename. 'Because I'm using selection.End(xlDown).Select to find the complete list, 'this program does not tolerate any blanks in the "A" column list. 'Note that I don't add a hyperlink in Row 1. Dim A As Object Dim lngRow As Long Dim Height As Long With ActiveSheet .Cells(1, 1).Select Selection.End(xlDown).Select Height = Selection.Row For lngRow = 2 To Height .Hyperlinks.Add Anchor:=ActiveSheet.Cells(lngRow, 2), Address:=Chr(34) & _ ActiveSheet.Cells(lngRow, 1).Value & Chr(34), TextToDisplay:="Open", _ ScreenTip:=Chr(34) & ActiveSheet.Cells(lngRow, 1).Value & Chr(34) Next For Each A In ActiveSheet.Hyperlinks If A.ScreenTip <> "" Then If InStr(1, A.ScreenTip, "#") <> 0 Then A.Address = Mid(A.ScreenTip, 2, Len(A.ScreenTip) - 2) End If End If Next End With End Sub 

请尝试下面的线程,以便通过使用VBA的地址从IE窗口打开URL

使用VBA将URL发送到活动的IE窗口

示例如下:

 Dim IE As Object Dim objCollection As Object ' Create InternetExplorer Object Set IE = CreateObject("InternetExplorer.Application") ' Send the form data To URL As POST binary request IE.Navigate "https://YOURURL/niku/nu#action:projmgr.projectDefaultTab&id=5558967" ' Clean up Set IE = Nothing 

希望这对你有用,因为它对我来说。 AmiK

转到Control Panel -> All Control Panel Items -> Default Programs -> Set Default Programs然后selectSetup Internet Explorer as Default Browser

closures所有Internet Explorer选项卡,然后重试。