Shell
调用适用于我拥有的某些程序,但不适用于其他程序。我在这里打了最基本的电话,无需任何其他命令即可打开exe
Shell "C:\Program Files\qBittorrent\qbittorrent.exe", 1 'works
Shell "C:\Program Files\AmiBroker\Broker.exe", 1 'works
Shell "C:\Program Files\CTrading\QuantShare\QuantShare.exe", 1 'Run-time error '5': Invalid procedure call or argument
Shell "C:\Program Files (x86)\Equis\MetaStock\MsWin.exe", 1 'same error
除非我在这里遇到救世主,否则我就要放弃了!
系统:Windows 10 Pro版本1909 OS Build 18363.476
Microsoft Excel 2013 64位
答案 0 :(得分:0)
有点丑陋的修复,但这可能会有所帮助:
Shell "cmd /c ""C:\Program Files\CTrading\QuantShare\QuantShare.exe""", 1
我没有遇到任何问题的程序,所以有点猜测。如果这样做没有帮助,则下一步是cmd /c start ...
答案 1 :(得分:0)
最后,我可以如下使用ShellExecute:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A2000")) Is Nothing Then
Set objShell = CreateObject("Shell.Application")
para = "TaskManager ChangeSymbol newsymbol:" & ActiveCell.Value
objShell.ShellExecute "C:\Program Files\CTrading\QuantShare\QuantShare.exe", para, "", "open", 1
Set objShell = Nothing
Cancel = True
End If
End Sub
我可以使ShellExecute不打开程序的新实例而是激活当前打开的实例并传递参数(类似于Shell调用吗?还如何使ShellExecute不引起焦点?我希望焦点保持在Excel