Вот и я с вопросом, как это ни странно. Обратились ко мне за помощью с прежнего места работы, все сделал и неожиданно всплыл подвох.
Есть URL в систему Nаumen (https://site/sd/operator/#uuid:serviceCall$10576439) При попытке вызвать его из Excel по гиперссылке (через формулу или просто) знак # воспринимается, как внутренний разделитель (bookmark) и идет ошибка что мол "Не удается открыть: https://site/sd/operator/. Не удается скачать нужные данные." Замена # на %23 делает ссылку не рабочей. Поиск пока результата не дал. Может кто встречался и решил проблему?
Нежелательный обходной вариант - это отказаться от внутреннего функционала и, обрабатывая DblClick, запускать браузер с корректным адресом, но не нравится, ни мне , ни "заказчику", тем более, что чисто на формулах реализовано все и вдруг такое.
что до # - то ссылка что после - к URL не относится, эту часть дописывают и используют скрипты, работающие В БРАУЗЕРЕ на этой веб-странице
Цитата
При попытке вызвать его из Excel
что значит «вызвать URL из Excel»? Загрузить страницу по этой ссылке у вас не получится Открыть в браузере - получится
Excel перед переходом по ссылке сам её прогружает, - потому и ошибка Либо открывать ссылку макросом, либо отключить загрузку экселем страницы при щелчке на ссылках
Точно уверены, что дело именно в решетке? У меня все гиперссылки всегда нормально работали с ней. Может дело в настройках браузера и он не может перейти по внутреннему идентификатору? У Excel вообще всегда были определенные проблемы с гиперссылками. То фотки открываются не там, то авторизация не проходит и т.п. Попробуйте создать ссылку на мой сайт(там есть якоря. К примеру на эту страницу(скрыл, чтобы не выглядело как реклама):
Скрытый текст
https://убрано/#tips_pt_analis
Если будет переходит в раздел сводных таблиц сразу - значит дело точно не в решетке и надо искать иные причины.
Изменено: Дмитрий Щербаков - 29.06.2018 19:14:45(убрал ссылку на сайт за ненадобностью)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Дмитрий Щербаков, Дмитрий, спасибо, теперь не уверен, на Ваш якорь нормальная ожидаемая реакция, видимо проблема в комбинации # и что за ней следует. Если открывать ссылку из #1 прямо в браузере, то все работает. Естественно , если убрать # то в сообщений об ошибке не обрезается ссылка типа становится такой "Не удается открыть: https://site/sd/operator/uuid:serviceCall$10576439. Не удается скачать нужные данные." . Но понятное дело что это не рабочая ссылка.
Я бы сделал ставку на некую авторизацию в самой системе. Браузер запоминает, но при вызове из Excel эта авторизация слетает и система просто отказывает в доступе. В свойствах обозревателя в Панели управления может имеет смысл покопаться и что-то поискать?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Где-то в реестре в настройках безопасности можно прописать ключ, запрещающий Excel прогружать страницу при переходе по ссылке Тогда ссылки будут открываться напрямую в браузере Где и что прописать - не помню
Дмитрий Щербаков, Дмитрий, думал об этом, но у меня доступа туда нет, эксперименты все сотрудник там ставит, не разворачивать же копию системы у себя на ноуте :-). Но натолкнули на идею попросить в приватном режиме запустить браузер и перейти по ссылке, Сразу станет понятно оно или не оно. Игорь, Вариант допустимый, спасибо. Посмотрю.
Сделал еще тогда, но забыл написать . Короче так и не удалось обойти якорь в гиперссылке, убрал гиперссылки и по двойному клику
Код
Public Declare Function ShellExecute _
Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hWnd As Long, _
ByVal Operation As String, _
ByVal FileName As String, _
Optional ByVal Parameters As String, _
Optional ByVal Directory As String, _
Optional ByVal WindowStyle As Long = vbMinimizedFocus _
) As Long
'------------------------------------------------------------------------
' Open Webpage in default browser
'------------------------------------------------------------------------
Public Sub OpenUrl(strURL)
Dim lSuccess As Long
lSuccess = ShellExecute(0, "Open", strURL)
End Sub
Владимир, Благодарю, Может тогда что не учел, но не хотел запускаться браузер, помню что и Wscript.shell и Shell.Application брал . а весь смысл был в запуске дефолтового. все проще конечно
Код
Public Sub OpenUrl(strURL)
CreateObject("Shell.Application").ShellExecute strURL, , 1
End Sub
да еще и без "проблем" с битностью при декларировании . Интересно на iMAC сработает? :-)