Команда VBA Excel не работает при вызове с помощью Shell, но работает при копировании в cmd напрямую

Я пытаюсь запустить программу с входным файлом.

Dim command, cfx5_exe_path, cfx_file_folder, cfx_file_name As String command = cfx5_exe_path & " -cfx " & cfx_file_folder & cfx_file_name & ".cfx " Shell command 

поэтому он дает ошибку. результирующее значение команды в отладчике

 "c:\"Program Files"\"ANSYS Inc"\v150\CFX\bin\cfx5pre.exe -cfx c:\Users\Username\Arbeit\Programming\A321_tail_flow.cfx" 

Если я скопирую-вставляю это в windows cmd напрямую и удаляю первые / последние кавычки, тогда он отлично работает. В чем проблема с Shell ?

В документации говорится:

Если функция Shell успешно выполняет именованный файл, она возвращает идентификатор задачи запущенной программы. Идентификатор задачи – это уникальный номер, который идентифицирует запущенную программу. Если функция Shell не может запустить именованную программу, возникает ошибка.

и это дает небольшой пример:

 Sub test() Dim RetVal Dim command As String command = "C:\WINDOWS\CALC.EXE" RetVal = Shell(command, 1) End Sub 

Здесь я получаю Error 53: file not found как calc в Windows 7, находится где-то в другом месте. Вы получили эту ошибку?

Предоставление правильного пути к calc запускает программу и возвращает уникальный идентификатор.

Однако цитирование части правильного пути вызовет ошибку:

  command = "C:\WINDOWS\""SYSTEM32""\CALC.EXE" 

но процитировать полный путь нет:

  command = """C:\WINDOWS\SYSTEM32\CALC.EXE""" 

Поэтому вы должны удалить все встроенные кавычки, а затем процитировать полный путь один раз.

  • Ошибка при выполнении RScript в Excel VBA
  • vba, пытается изменить адрес открытой папки
  • Добавление файлов XLS путем удаления заголовка во всех, кроме First
  • Разархивируйте файлы .gz
  • Генерация отчетов в формате Unix
  • Как получить изменение сценария с оболочкой, которое будет распознано открытым приложением
  • Excel VBA Shell FTP регистрации
  • Замена символов без открытия файла Excel
  • сохранить файл csv как файлы excel с помощью оболочки
  • Как изменить значение ячейки excel +1 или -1 с помощью AppleScript
  • Excel VBA Подождите, пока Shell закончит работу, прежде чем продолжить сценарий
  • Давайте будем гением компьютера.