Перейти к содержимому

Выполнить команды оболочки из ячейки Excel

0

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

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

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

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

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

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

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

5 109 просмотров
Thom G спросил 9 лет назад
T 46

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-адресом.

Thom G ответил 9 лет назад
T 46
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 будет открыт в блокноте.

J. Woolley ответил 8 лет назад
J 1