22.04.2024, 07:09
Excel

Создание гиперссылки

22.04.2024, 07:09. Показов 1173. Ответов 9

Студворк — интернет-сервис помощи студентам
Добрый день! Не подскажите как с помощью VBA создать в ячейке гиперссылку, запускающую макрос, находящийся в модуле другой открытой книге Excel?
0
Лучшие ответы (1)
22.04.2024, 07:09
Ответы с готовыми решениями:

Создание гиперссылки в listbox
Добрый день, беру данные из листа excel и загружаю их в таблицу, гиперссылки отображаются простыи текстом. Возможно ли реализовать...

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

Создание гиперссылки на одинаковые ячейки
Доброго времени суток гуру Excel ! ! ! 8-) Вопрос в следующем: Каким образом создать (правило, макрос и т.п.) так, чтобы в двух...

9
 Аватар для Eugene-LS
13269
22.04.2024, 08:39
Насчёт " создать в ячейке гиперссылку" - это скорее форматирование значения в ячейке, а так
Книга "BookWMacro.xlsm" в модуль пишем:
Visual Basic
1
2
3
Private Sub Hey()
    MsgBox "Привет из BookWMacro.xlsm!", vbInformation, "Workbook Name"
End Sub
Любая другая книга (в той же папке), в модуль листа пишем:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' ...
' -------------------------------------------------------------------------------------------------/
Dim sPath As String
On Error GoTo Worksheet_BeforeDoubleClick_Err
 
    sPath = ActiveWorkbook.Path & "\BookWMacro.xlsm"
    If Len(Target.Value) = 0 Then Exit Sub
    Cancel = True
    Application.Run "'" & sPath & "'!" & Target.Value
 
' -------------------------------------------------------------------------------------------------/
Worksheet_BeforeDoubleClick_End:
    Exit Sub
 
Worksheet_BeforeDoubleClick_Err:
    MsgBox "Error " & Err.Number & " - " & Err.Description & vbCrLf & _
           "In Sub: Worksheet_BeforeDoubleClick - Sheet1.", vbCritical, "Error!"
    Err.Clear
    Resume Worksheet_BeforeDoubleClick_End
End Sub
В ячейку пишем "Hey" ... и по ней исполняем BoubleClick.
... в моём случае на исполнение идёт инструкция: Application.Run "'D:\Temp\BookWMacro.xlsm'!Hey"
Миниатюры
Создание гиперссылки  
1
 Аватар для Eugene-LS
13269
22.04.2024, 10:52
Цитата Сообщение от Eugene-LS Посмотреть сообщение
... и по ней исполняем BoubleClick.
Следует читать как "DoubleClick" - конечно.
Очепятился.
0
 Аватар для АЕ
ᴁ ©
4087
22.04.2024, 14:03
Цитата Сообщение от Eugene-LS Посмотреть сообщение
BoubleClick.
вроде просто опечатка, а я ржу 5 мин. уже. Спасибо. Сделал день!

Добавлено через 6 минут
-у меня эта ассоциация, поэтому и смешно.
0
Unicoder  [ТС]
0
23.04.2024, 08:34
Вот пример кода который создаёт гиперссылку в ячейке и запускает функцию AnyFunc

PureBasic
1
2
3
4
5
6
7
8
9
10
11
Sub Макрос1()
  Range("a1").Hyperlinks.Add _
  anchor:=Range("a1"), _
  Address:="#AnyFunc()", _
  TextToDisplay:="HyperLink text"
End Sub
 
Function AnyFunc()
  Set AnyFunc = Selection 'обязательно!
  MsgBox "Done"
End Function
Макрос1 и функция AnyFunc должны находиться в одной книге Excel.
Вопрос в том, как изменить текст кода, чтобы была возможность запустить макрос из другой открытой книги Excel?
0
349
23.04.2024, 08:47
Цитата Сообщение от Unicoder Посмотреть сообщение
Вопрос в том, как изменить текст кода, чтобы была возможность запустить макрос из другой открытой книги Excel?
Вoзмoжнo сoздать для запуска макрoса ключ или сoчетание клавиш (метoд Application.OnKey)

https://learn.microsoft.com/ru... tion.onkey
1
Unicoder  [ТС]
0
23.04.2024, 09:22
elixi, да, есть много способов запустить макрос. Но вопрос, можно ли запустить макрос с помощью созданной программно гиперссылки.
0
1412
23.04.2024, 11:17
Лучший ответ Сообщение было отмечено Unicoder как решение

Решение

Цитата Сообщение от Unicoder Посмотреть сообщение
Вот пример кода который создаёт гиперссылку в ячейке и запускает функцию AnyFunc
Нужно добавть имя/путь второй книги в адрес таким образом
Visual Basic
1
2
3
4
5
6
Sub Макрос2()
  Range("c1").Hyperlinks.Add _
  anchor:=Range("c1"), _
  Address:="#'Книга2.xlsm'!AnyFunc()", _
  TextToDisplay:="HyperLink text"
End Sub
1
 Аватар для Eugene-LS
13269
23.04.2024, 12:43
Цитата Сообщение от Unicoder Посмотреть сообщение
создать в ячейке гиперссылку, запускающую макрос, находящийся в модуле другой открытой книге Excel?
Получилось так:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub MacroHyperlinkAdd()
' Создание ссылки на процедуру в другой книге
' Обратите внимание, что имя процедуры указывается без скобок "Hey" а не "Hey()"!
Dim sPath As String, sRange As String
    sPath = ActiveWorkbook.Path & "\BookWMacro.xlsm"
    sRange = "A1"
    Range(sRange).Hyperlinks.Add _
        Anchor:=Range(sRange), Address:=sPath, SubAddress:="Hey", _
        TextToDisplay:=sPath & "!" & "Hey()"
End Sub
 
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
' Перехват клика по ссылке
Dim sVal As String
  sVal = Target.Range.Hyperlinks(1).Address
  
  If Dir(sVal) = "" Then
        MsgBox "Путь: [" & sVal & "] - не найден!", vbExclamation
        Exit Sub
  End If
  sVal = "'" & sVal & "'!" & Target.Range.Hyperlinks(1).SubAddress
  Application.Run sVal
End Sub

Файлы те же что и в post#2.
0
Unicoder  [ТС]
0
23.04.2024, 14:03
Вопрос решён! Всем большое спасибо, а особенно testuser2.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 Аватар для raxper
raxper
30234
23.04.2024, 14:03

Создание гиперссылки на конкретный лист в другой книге
Добрый день. Подскажите пожалуйста, есть 2 книги. 1.xlsx и 2.xlsx. В книге 2 есть макрос, который создаёт гиперссылку в ячейке B5. Как...

Гиперссылки
Добрый день! Прошу помощи зала. Есть файл, в котором надо проставить гиперссылки в 1-й колонке, начиная со 2-й строки и до конца. Написан...

Гиперссылки
Здравствуйте! Задача следующая. Есть несколько файлов в папке, нужно чтобы по порядку файлы вставилась как гиперссылки в Книге Excel,...

Гиперссылки word
Здравствуйте, у меня есть текст с множеством гиперссылок, мне нужно что бы макрос находил ближайшую ссылку после курсора и выводил её...

Картинка в подсказке у гиперссылки
Можно ли вставить картинку в подсказку у гиперссылки при наведении на нее мышкой, если можно то как?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Опции темы

Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru