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

Shell "C:\Program Files\uvnc bvba\UltraVnc\vncviewer" & " " & Range("$G3")

Ячейка G3 содержит IP-адрес, с которого я хочу запустить программу.

У меня нет проблем с запуском команды из командной кнопки, но я хочу запустить программу с аргументами из гиперссылки, используя:

= HYPERLINK("C:\Program Files\uvnc bvba\UltraVnc\vncviewer" & " " & Range("$G3"))

Но гиперссылка не может открыть программу с необязательными аргументами.

Можно ли как-нибудь открыть программу из гиперссылки с необязательными аргументами?

2 ответа2

1

разобрался с помощью VBA:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("range here")) Is Nothing Then
   Call Shell("program location" & " " & Target)
Else

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

0

Гиперссылки Excel хороши для открытия веб-страниц, файлов PDF или других файлов, совместимых с Microsoft Office. Но существуют определенные проблемы при использовании гиперссылки для открытия командного файла, такого как EXE, BAT, CMD, VBS и т.д. Например:

• Диалоговое окно предупреждения с кнопками OK/ Отмена должно быть согласовано.

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

• Путь к командному файлу может быть трудно определить, особенно если файл Excel перемещен.

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

• Окно оболочки будет мигать при открытии длинных или сложных файлов сценариев, таких как CMD или VBS.

Описанная здесь методика решает эти проблемы без влияния на стандартные гиперссылки в Excel: http://blog.contextures.com/archives/2017/09/14/excel-hyperlinks-run-command-files/

Это решение добавляет текст, который выглядит как RUN::COMMAND, в ячейку гиперссылки, а затем обрабатывает этот текст, используя VBA, добавленный в код события FollowHyperlink рабочего листа. Например, если отображается ячейка гиперссылки

This cell is a hyperlink to RUN::"Notepad.exe" "SomeFilePath.BAS"

тогда указанный файл BAS будет открыт в блокноте.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .