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

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

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

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

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

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

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

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

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

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

решение2

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

• Необходимо согласовать диалоговое окно с предупреждением и кнопками «ОК»/«Отмена».

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

• Путь к командному файлу может быть сложно указать, особенно если файл 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-файл будет открыт в Блокноте.

Связанный контент