Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как запретить переход по гиперссылке в VBA ? - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Как запретить переход по гиперссылке в VBA ?
mveresov Дата: Вторник, 30.01.2018, 10:37 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Отлавливаю событие перехода по гиперссылке с помощью Worksheet_FollowHyperlink
Извлекаю строку адреса и подгружаю контент в форму.
Как заставить не открывать в браузере данную гиперссылку, и при этом не удалять ее ?
А так же не выводить никаких сообщений если она не существует
 
Ответить
СообщениеОтлавливаю событие перехода по гиперссылке с помощью Worksheet_FollowHyperlink
Извлекаю строку адреса и подгружаю контент в форму.
Как заставить не открывать в браузере данную гиперссылку, и при этом не удалять ее ?
А так же не выводить никаких сообщений если она не существует

Автор - mveresov
Дата добавления - 30.01.2018 в 10:37
SLAVICK Дата: Вторник, 30.01.2018, 11:05 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
А если вставить не гиперссылку, а обычный текст. И событие SelectionChange.
Если будет в ячейке текст с ссылкой - то отрабатывать макрос - нет - не отрабатывать.


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеА если вставить не гиперссылку, а обычный текст. И событие SelectionChange.
Если будет в ячейке текст с ссылкой - то отрабатывать макрос - нет - не отрабатывать.

Автор - SLAVICK
Дата добавления - 30.01.2018 в 11:05
Апострофф Дата: Вторник, 30.01.2018, 11:06 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 467
Репутация: 129 ±
Замечаний: 0% ±

Excel 1997
https://support.office.com/ru-ru....4d72b3e
Цитата
Чтобы выбрать гиперссылка, но не переходить на назначение, выполните одно из указанных ниже действий:

Щелкните ячейку, содержащую гиперссылку, и удерживайте нажатой кнопку мыши, пока указатель не примет вид креста Курсор выделения Microsoft Excel . После этого отпустите кнопку мыши.

Выделите ячейку, содержащую ссылку, с помощью клавиш со стрелками.

Если ссылка является графическим объектом, нажмите клавишу CTRL и, удерживая ее нажатой, щелкните ссылку.
 
Ответить
Сообщениеhttps://support.office.com/ru-ru....4d72b3e
Цитата
Чтобы выбрать гиперссылка, но не переходить на назначение, выполните одно из указанных ниже действий:

Щелкните ячейку, содержащую гиперссылку, и удерживайте нажатой кнопку мыши, пока указатель не примет вид креста Курсор выделения Microsoft Excel . После этого отпустите кнопку мыши.

Выделите ячейку, содержащую ссылку, с помощью клавиш со стрелками.

Если ссылка является графическим объектом, нажмите клавишу CTRL и, удерживая ее нажатой, щелкните ссылку.

Автор - Апострофф
Дата добавления - 30.01.2018 в 11:06
mveresov Дата: Вторник, 30.01.2018, 11:31 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
А если вставить не гиперссылку, а обычный текст. И событие SelectionChange.


Должно выполняться условие интуитивного восприятия ожидаемых действий от пользователя....
У меня в ячейке стоит гиперссылка на картинку, а замещающий текст - ФОТО, при нажатии картинка подгружается в форму, а ее открытие в браузере мешает ...
Возможен вариант когда можно создать в объекте скрытый атрибут со строкой ссылки, который можно получить через событие и использовать для подгрузки данных, но пока в голову не приходит что лучше использовать... Может использовать примечание ? но как запретить его отображение при наведении курсора ?
Так же решение должно учитывать и размера файла XLS, при использовании графических форм он будет просто запредельным...

Цитата Апострофф, 30.01.2018 в 11:06, в сообщении № 3 ()
https://support.office.com/ru-ru....4d72b3e

Это не подходит, так как кол-во пользователей огромное, объяснить всем невозможно, да и работать так будет очень не удобно
 
Ответить
Сообщение
А если вставить не гиперссылку, а обычный текст. И событие SelectionChange.


Должно выполняться условие интуитивного восприятия ожидаемых действий от пользователя....
У меня в ячейке стоит гиперссылка на картинку, а замещающий текст - ФОТО, при нажатии картинка подгружается в форму, а ее открытие в браузере мешает ...
Возможен вариант когда можно создать в объекте скрытый атрибут со строкой ссылки, который можно получить через событие и использовать для подгрузки данных, но пока в голову не приходит что лучше использовать... Может использовать примечание ? но как запретить его отображение при наведении курсора ?
Так же решение должно учитывать и размера файла XLS, при использовании графических форм он будет просто запредельным...

Цитата Апострофф, 30.01.2018 в 11:06, в сообщении № 3 ()
https://support.office.com/ru-ru....4d72b3e

Это не подходит, так как кол-во пользователей огромное, объяснить всем невозможно, да и работать так будет очень не удобно

Автор - mveresov
Дата добавления - 30.01.2018 в 11:31
SLAVICK Дата: Вторник, 30.01.2018, 11:46 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
а замещающий текст - ФОТО, при нажатии картинка подгружается в форму,

А если со скрытым листом, например :
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox Sheets(" ").Range(Target.Address).Value
End Sub
[/vba]
И по размерам не много и легко сделать
К сообщению приложен файл: 3131301.xlsm (14.9 Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
а замещающий текст - ФОТО, при нажатии картинка подгружается в форму,

А если со скрытым листом, например :
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox Sheets(" ").Range(Target.Address).Value
End Sub
[/vba]
И по размерам не много и легко сделать

Автор - SLAVICK
Дата добавления - 30.01.2018 в 11:46
mveresov Дата: Вторник, 30.01.2018, 11:57 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
А если со скрытым листом, например :


Правильно я понимаю что ссылка лежит в тех же адресах но на другом скрытом листе ?
А как его скрыть или отобразить ?
Все же событие Worksheet_SelectionChange мне кажется не очень удобным так как оно охватывает как простое перемещение по ячейкам с помощью клавиатуры так и нажатие правой кнопки мышки, можно конечно это все отфильтровать, но больше нравиться в этом плане Worksheet_FollowHyperlink поэтому и зацепился за нее...
 
Ответить
Сообщение
А если со скрытым листом, например :


Правильно я понимаю что ссылка лежит в тех же адресах но на другом скрытом листе ?
А как его скрыть или отобразить ?
Все же событие Worksheet_SelectionChange мне кажется не очень удобным так как оно охватывает как простое перемещение по ячейкам с помощью клавиатуры так и нажатие правой кнопки мышки, можно конечно это все отфильтровать, но больше нравиться в этом плане Worksheet_FollowHyperlink поэтому и зацепился за нее...

Автор - mveresov
Дата добавления - 30.01.2018 в 11:57
SLAVICK Дата: Вторник, 30.01.2018, 12:04 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Правильно я понимаю что ссылка лежит в тех же адресах но на другом скрытом листе ?

Да
А как его скрыть или отобразить ?

Читайте про суперскрытый лист
Worksheet_SelectionChange мне кажется не очень удобным так как оно охватывает как простое перемещение по ячейкам с помощью клавиатуры

Ну можно на Дабл клик повесить.
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox Sheets(" ").Range(Target.Cells(1, 1).Address).Value
Cancel = 1
End Sub
[/vba]
К сообщению приложен файл: 3131301-1-.xlsm (15.3 Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
Правильно я понимаю что ссылка лежит в тех же адресах но на другом скрытом листе ?

Да
А как его скрыть или отобразить ?

Читайте про суперскрытый лист
Worksheet_SelectionChange мне кажется не очень удобным так как оно охватывает как простое перемещение по ячейкам с помощью клавиатуры

Ну можно на Дабл клик повесить.
[vba]
Код
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox Sheets(" ").Range(Target.Cells(1, 1).Address).Value
Cancel = 1
End Sub
[/vba]

Автор - SLAVICK
Дата добавления - 30.01.2018 в 12:04
mveresov Дата: Вторник, 30.01.2018, 13:15 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 20% ±

Excel 2016
Ну можно на Дабл клик повесить.


Спасибо, тоже вариант!
 
Ответить
Сообщение
Ну можно на Дабл клик повесить.


Спасибо, тоже вариант!

Автор - mveresov
Дата добавления - 30.01.2018 в 13:15
RAN Дата: Вторник, 30.01.2018, 14:07 | Сообщение № 9
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Со скрытым листом по гиперссылке
[vba]
Код
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    On Error Resume Next
    ActiveSheet.Pictures.Insert(Sheets(Split(Target.SubAddress, "!")(0)) _
                    .Range(Split(Target.SubAddress, "!")(1)).Hyperlinks(1).Address).Select
    If Err Then
        ActiveSheet.Pictures.Insert(Sheets(Split(Target.SubAddress, "!")(0)) _
                    .Range(Split(Target.SubAddress, "!")(1)).Value).Select
    End If
End Sub
[/vba]
К сообщению приложен файл: 1137837.xlsm (15.0 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСо скрытым листом по гиперссылке
[vba]
Код
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    On Error Resume Next
    ActiveSheet.Pictures.Insert(Sheets(Split(Target.SubAddress, "!")(0)) _
                    .Range(Split(Target.SubAddress, "!")(1)).Hyperlinks(1).Address).Select
    If Err Then
        ActiveSheet.Pictures.Insert(Sheets(Split(Target.SubAddress, "!")(0)) _
                    .Range(Split(Target.SubAddress, "!")(1)).Value).Select
    End If
End Sub
[/vba]

Автор - RAN
Дата добавления - 30.01.2018 в 14:07
RAN Дата: Пятница, 02.02.2018, 20:04 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
И вот почему я был уверен, что реакция ТС будет именно такой?


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Пятница, 02.02.2018, 20:54
 
Ответить
СообщениеИ вот почему я был уверен, что реакция ТС будет именно такой?

Автор - RAN
Дата добавления - 02.02.2018 в 20:04
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!