VBA Shell函数报错:无效的过程调用或参数,办公环境异常排查
VBA Shell函数「无效的过程调用或参数」异常排查求助
在家用电脑的新工作簿中运行以下VBA代码可正常完成文件复制:
Sub Example() iErr = Interaction.Shell("cmd.exe copy /c C:\Temp\Generator.xlsm C:\Temp\Async_Test.xlsm", vbNormal) End Sub
但在办公电脑上执行时,出现「无效的过程调用或参数」错误。尝试添加双引号改写代码,问题依旧:
Sub Example2() iErr = Interaction.Shell("cmd.exe copy /c ""C:\Temp\Generator.xlsm"" ""C:\Temp\Async_Test.xlsm""", vbNormal) End Sub
进一步测试发现,调用powershell.exe(无论使用文件名还是完整路径)都会触发相同错误:
Sub Example3_Powershell() iErr = Shell("powershell.exe", vbNormal) End Sub
Sub Example3_Powershell() iErr = Shell("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe", vbNormal) End Sub
但调用excel.exe可正常执行:
'Opens excel as required... Sub Example3_LaunchExcel() iErr = Shell("excel.exe", vbNormal) End Sub
注:因需要异步执行,故选择使用Shell函数,现求助排查该异常原因。
内容的提问来源于stack exchange,提问作者Sancarn
相关产品推荐
相关产品推荐

