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

Гиперссылка Excel на местоположение веб-страницы с идентификатором или именованным якорем

В Excel я могу создать гиперссылку на веб-страницу. Однако, если URL-адрес содержит символ #, Excel всегда преобразует хэш-знак в пространство-дефис, поэтому ссылка больше не работает. URL http://www.example.com/page#location становится http://www.example.com/page%20-%20location

Я пробовал три способа

  • вручную, щелкните правой кнопкой мыши ячейку, нажмите "гиперссылка" и введите URL-адрес в поле адреса

  • программно, предоставляя полный 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

4b9b3361

Ответ 1

Это проблема браузера, а не проблема Excel. Переключение с Google Chrome на Internet Explorer решило его.

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

Ответ 2

Это не проблема с браузером. Приложения MS Office обрабатывают URL-адреса, а # заменяется на "-" ( %20 - это пробел).

Эта досадная проблема допускается к существованию самой Microsoft. Чтобы процитировать с этой страницы:

Эти проблемы могут возникать, когда имя файла, к которому вы создаете гиперссылку, содержит знак фунта (#).

ПРИМЕЧАНИЕ. Знак фунта является допустимым символом для использования в имени файла, но не принимается в гиперссылках в документах Office.

Их единственными обходными решениями являются удаление нарушителя # или копирование и вставка URL-адреса из документа... совершенно нелепо, учитывая причину, по которой большинство людей будут использовать #, чтобы сделать ее проще для пользователей для поиска содержимого.

Запросите, чтобы Microsoft улучшило это поведение, проголосовав здесь: https://office365.uservoice.com/forums/264636-general/suggestions/32273917-stop-mangling-urls-containing-a-so-we-can-link-t

Ответ 3

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

Как только вы это сделаете, даже изменение браузера по умолчанию в Firefox и его изменение в IE не нарушит его снова.

Это решение является "более чистым", чем игра в реестре, и оно было зарегистрировано как официальное решение в нашей компании.

Ответ 4

Вы можете создать гиперссылку в ячейке, просто введя URL-адрес и нажав enter. Excel распознает его как URL-адрес, если у него есть такие вещи, как

"ком"

и/или

"HTTP://"

Я попробовал вашу проблему и не получил ее. Возможно, есть и другие проблемы с вашим URL. Возможно, вы захотите опубликовать более похожий URL-адрес на тот, который вы используете (такие же типы символов). У меня также есть Excel 2010.

Ответ 5

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

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

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

Ответ 6

У меня был сотрудник с этой точной проблемой (включая ошибку %20-%20) в Word 2010 вместо Excel.

Решено следующее:

В Internet Explorer:

  • Свойства обозревателя
  • вкладка "Программы"
  • Редактор HTML: убедитесь, что это не пусто.

Ответ 7

К сожалению, в Excel я все еще сталкивался с проблемами с безопасными гиперссылками, закодированными в URL.

Они будут работать один раз, а затем перейдут на гиперссылку file:// после того, как вы нажмете ее один раз, и снова сломались.

Итак, я использовал функцию =Hyperlink(), и все было хорошо, потому что Excel не может изменить мою конкатенированную строку URL в формуле.

Yay, я выиграю... nope

Когда файлы находятся в защищенном представлении, из-за настроек безопасности или если пользователь просматривает файл как вложение в Outlook, символ # по-прежнему превращается в %20-%20

введите описание изображения здесь

введите описание изображения здесь

Поскольку наш ИТ-отдел не позволяет нам устанавливать другой браузер, мы не можем сделать Internet Explorer браузером по умолчанию (поскольку он уже есть).

Сравнивая два компьютера, один из которых я смог изменить браузер по умолчанию и стандартную нагрузку, я заметил, что в стандартной загрузке отсутствует следующая запись реестра.

Решение: Сохранить как Офисная гиперссылка 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...).

Ответ 8

Если проблема связана с ссылками на порталы сервера Share Point, вы можете вырезать часть гиперссылки (в моем случае это жирная часть: Beginning_of_the_address /_layouts/15/start.aspx#/End_of_address).

У меня отлично работает (MSO 16 + SPS 2k16).