我有一个 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 文件将在记事本中打开。