使用'WScript.Shell'对象的'Run'方法时出现运行时错误

时间:2015-07-30 09:53:45

标签: excel vba excel-vba cmd excel-2010

我正在尝试通过VBA运行命令提示符来执行一些命令,但我遇到了错误。

  

运行时错误'-214702894(80070002)':
  对象'IWshShell3'的方法'运行'失败

我已尝试在引号中包装文件路径(如下所示),但错误仍然存​​在于我使用的任何方法中。

Shell.Run "cd """ & MyDocumentsPath & """", 1, True
Shell.Run "cd " & Chr(34) & MyDocumentsPath & "Chr(34)", 1, True

我还尝试直接键入文件路径(没有空格),但也失败了。

Shell.Run "cd ""C:\Users\GardD""", 1, True

有人能发现任何问题吗?这是我的完整代码 -

Dim Shell As Object ' An instance of the 'Shell' object
Set Shell = VBA.CreateObject("WScript.Shell")

Dim MyDocumentsPath As String   ' The path to the current users 'My Documents' folder
MyDocumentsPath = GetMyDocumentsPath

Shell.Run "cd " & MyDocumentsPath, 1, True  ' Change the Shell start location to the users 'My Documents' folder
Shell.Run DIR_CMD & DIR_FILE_PATH, 1, True  ' Output the full file paths of all files in the users 'My Documents' folder

Set Shell = Nothing ' Destroy the 'Shell' object

1 个答案:

答案 0 :(得分:2)

cd不是可执行文件;它是一个仅存在于(cmd.exe)控制台会话中的命令,同样适用于dir,如果它是DIR_CMD中的内容。

你可以Shell.Run "cmd /c cd c:\temp & dir *.xls", 1, true

使用VBA在命令行上做任何你想做的事情可能更好。