Подтвердить что ты не робот

Изменение гиперссылки С# на %20 %20 при нажатии в Excel

У меня есть гиперссылка на листе Excel 2013, которая ссылается на внутренний веб-сайт. Когда я нажимаю правой кнопкой мыши и выбираю "редактировать гиперссылку", я вижу это в адресной строке (что правильно):

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

Однако, когда я оставил клик, средний клик или щелкните правой кнопкой мыши → открыть гиперссылку, я получаю такое же поведение: открывается IE11, и я получаю ошибку http 404, потому что ссылка (показана ниже) не найдена.

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

Что может быть преобразование # в %20-%20? Это очень странно, потому что %20 - это пробел, и в URL-адресе нет пробелов.

4b9b3361

Ответ 1

Это известная проблема с MS Excel. В принципе, знак hash/pound (#) является допустимым символом для использования в имени файла, но не принимается в гиперссылках в документах Office. Преобразование в %20-%20 представляется по дизайну.

Однако посмотрите на этот вопрос, выделив ту же проблему, но с Excel 2010:

который, по-видимому, подразумевает, что это может быть проблема с браузером IE. Если вы можете установить другой браузер как свой по умолчанию, даже временно для тестирования, он может работать.

Ответ 2

Я считаю, что это может помочь некоторым людям, поэтому я сказал, что id опубликует его: У меня была такая же проблема с Word, и в качестве работы я использовал URL Encoder Сделайте быстрый поиск там много таких, как здесь:

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

Просто вставьте URL-адрес, он вернет Url, который будет работать в гиперссылке из Word Excel и т.д.

Голосуйте за меня, если вы сочтете это полезным.

Ответ 4

Обход проблемы: Сохранить как PDF

Если для клиентов доступны только для чтения и не нужны в формате excel/Word, вы можете сохранить файл в формате PDF. гиперссылки с "#" будут работать в PDF-читателях. Например: http://help.overdrive.com/#videos?ade

Ответ 5

Это не сработало для машин, на которых я его пробовал. Элемент ниже или изменение процесса на моем конце исправили проблему.

В гиперссылках MS Word # становится%. Это то, что происходит со мной при запуске IE 11 на OS 64Bit Win7. Word документы с гиперссылками, которые имеют # символов, являются причиной проблемы, я считаю.

Попробуйте гиперссылку из документа Word, который не работает с ошибкой 404, как показано ниже: http://iservice.prv/eng/imit/catalogue/software_application_service.shtml#outlook_text

Теперь измените символ # в конце на a/, тогда гипертекст откроется в IE 11 из текстового документа, как ожидалось, как исправленная гиперссылка ниже. http://iservice.prv/eng/imit/catalogue/software_application_service.shtml/outlook_text

Когда мы используем сайт самообслуживания и его контент для обновлений спецификации поддержки, убедитесь, что вы изменили какие-либо ссылки С# в них на/слэши перед использованием/копированием ссылки в виде встроенной гиперссылки в документе спецификации спецификации.

Ответ 6

Мне удалось обойти это, используя% 23 вместо значка # (hashtag | фунт). Мой URL теперь работает в Excel 2013. "hovertext" показывает символ # в URL-адресе, но редактирование ссылки показывает% 23.

http://www.example.com/page#location не работает

http://www.example.com/page%23location работает

Ответ 7

В Excel 2013 вы можете использовать функцию encodeurl(url).

Example

Источник: http://versitas.com/blog/two-easy-ways-to-encode-urls-in-excel/

Затем вы можете передать кодированный URL-адрес функции hyperlink(link_location,[friendly_name]), чтобы отобразить более читаемый URL-адрес.

Ответ 8

Я вложил отчет в новое сообщение в Outlook, и гиперссылки работали нормально. Он не работал при вставке в Word и не вставлял их обратно в Excel из Outlook. (Использование Office Professional Plus 2010 для всех трех приложений).

Позже я сделал следующее предложение относительно браузера по умолчанию. Я вошел в Chrome и сделал это своим дефолтом. Затем закрыл Chrome. Затем перешел в IE и сделал это моим дефолтом. Нет перезагрузки. Ссылки работали.

Ответ 9

У меня был один пользователь, который не смог открыть связанные сайты, содержащие # в URL, используя IE. Она могла открыть 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 Developer Tools, я обнаружил, что стандартными параметрами Document Standards в моем браузере были стандарты IE7. По умолчанию в ее браузере были стандарты IE10. Когда она изменила настройки своего документа на стандарты IE7, закрыла браузер, а затем нажала ссылку из Excel, страница открылась правильно в IE.

В нашей корпоративной среде мы используем IE как браузер по умолчанию, и по умолчанию у нас включен режим совместимости, но каким-то образом ее настройки были изменены. Это дает справедливое предупреждение о том, что в будущем хэш (#) может быть проблематичным в URL-адресе.

Ответ 10

Это похоже на IE, в Chrome URL-адрес работает правильно.

Однако я обнаружил, что добавление ENCODEURL() исправило проблему для меня.

Оригинальная версия:

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

Фиксированная версия:

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

Ответ 11

Всякий раз, когда Excel видит знак "#" в гиперссылке, он пытается интерпретировать его как своего рода ссылку или "магический хеш". Смотрите это: http://www.myonlinetraininghub.com/excel-factor-18-dynamic-hyperlinks-and-the-magic

Но это плохо, если в вашей гиперссылке есть знак "#" , не намереваясь использовать эту причудливую функциональность Excel. Что вы можете сделать?

Похоже, что Excel интерпретирует "#" как "магию", когда Excel создает гиперссылки. Но если вы создаете гиперссылку в объектной модели Excel или изменяете адрес существующей гиперссылки в объектной модели Excel, вы можете навязать не магический # в Excel или MS Word или любое другое приложение MS Office, которое обычно имеет проблема.

Я сделал код Excel, который делает это автоматически для листа, содержащего столбец с полными адресами, содержащими знак фунта (только текст), который заполняет столбец 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

Ответ 12

Это действительно раздражает, но существует простой способ: не используйте URL-адрес С#, но используйте службу URL-shortener, например https://goo.gl/

Ответ 13

Самое лучшее решение, которое мы нашли, без ручного изменения записей в реестре, - это reset Internet Explorer, который будет браузером по умолчанию. Это сбрасывает ассоциации URL-адресов, протоколов и расширений и решает проблему.

Ответ 14

Пожалуйста, попробуйте приведенный ниже поток, чтобы открыть URL из окна IE по его адресу, используя VBA

Использование 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

Ответ 15

Перейдите к Control Panel -> All Control Panel Items -> Default Programs -> Set Default Programs и выберите Setup Internet Explorer as Default Browser.

Закройте все вкладки Internet Explorer и повторите попытку.