
我有一個 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檔案將在記事本中開啟。