从VBA传递参数到python

时间:2016-03-30 19:53:04

标签: python excel vba excel-vba

在VBA代码中,当调用python文件的路径中没有空格时,我正在调用Python并成功传递一个参数:

Dim wsh As Object
Set wsh = CreateObject("WScript.Shell")

Dim shell_exec As Object
Set shell_exec = wsh.Exec("C:\path_to_executable\python.exe " & "C:\path_without_spaces\file.py " & arg)

但是,当python文件的路径包含空格时,我找不到任何方法将参数传递给python。例如,当没有参数时,三重双引用路径:

Set shell_exec = wsh.Exec("C:\path_to_executable\python.exe " & """C:\path with spaces\file.py""")

但是在这样做时我无法找到任何传递参数的方法。例如,像这样的调用(以及我能想到的这个主题的每个变体)都会失败:

Set shell_exec = wsh.Exec("C:\path_to_executable\python.exe " & """C:\path with spaces\file.py """ & arg)

这是可能的,还是在这种情况下使用空间致命的模糊不清?

建议表示赞赏。

1 个答案:

答案 0 :(得分:1)

尝试使用多个引号:

{{1}}