执行python脚本无效的Excel VBA shell脚本

时间:2016-11-02 06:15:48

标签: python excel vba excel-vba shell

我有一个如下所示的VBA脚本,它执行一个将值写入Excel工作簿的python脚本。

Dim args
Dim Ret_Val
args = ActiveWorkbook.Path & "\helloWorld.py"
Ret_Val = Shell("C:\Python27\python.exe " & args, vbNormalFocus)

helloWorld.py如下:

import xlrd
from xlutils.copy import copy
rb = xlrd.open_workbook("/a/b/StubProto.xlsm")
wb = copy(rb)
ws1 = wb.get_sheet(0)
ws1.write(1, 11, "Hello World")
wb.save("StubProto.xlsm")

上述代码在Windows环境中可单独运行,但在VBA环境中无效。它似乎没有在VBA环境中返回任何内容。

我做错了吗?

2 个答案:

答案 0 :(得分:0)

我有一个VBA脚本执行相同的操作,它的外观如下:

args = """" & Application.ActiveWorkbook.Path & "\helloWorld.py"" P"
output = ShellRun("""C:\Python27\python.exe"" " & args)

答案 1 :(得分:0)

问题在于args路径中的目录中间有空格。删除python脚本路径中的空格修复了错误。