從 Excel 儲存格執行 Shell 指令

從 Excel 儲存格執行 Shell 指令

我有一個 shell 命令,用於使用附加參數執行程式。

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)時,shell 視窗將會閃爍。

此處描述的技術可以解決這些問題,而不影響標準 Excel 超連結:http://blog.contextures.com/archives/2017/09/14/excel-hyperlinks-run-command-files/

此解決方案將類似 RUN::COMMAND 的文字新增至超連結的儲存格,然後使用新增至工作表的 FollowHyperlink 事件程式碼中的 VBA 處理該文字。例如,如果超連結的儲存格顯示

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

然後指定的BAS檔案將在記事本中開啟。

相關內容