从VBA运行python脚本

时间:2016-06-21 14:49:49

标签: python vba

我尝试了几种从VBA运行python脚本的解决方案。

我当前的解决方案仍然无效

Dim wsh As Object
Set wsh = VBA.CreateObject("WScript.Shell")
Dim windowStyle As Integer: windowStyle = 1
Dim waitOnReturn As Boolean: waitOnReturn = True

wsh.Run "C:\Python33\python.exe C:\Users\***\Documents\Promo models\get_sku_data.py", windowStyle, waitOnReturn

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

xlwings声称从excel中创建python非常简单:

Sub RandomNumbers()
    RunPython ("import mymodule; mymodule.rand_numbers()")
End Sub
  

要进行此操作,只需在VBA编辑器中导入VBA模块xlwings.bas(使用Alt-F11打开VBA编辑器,然后转到文件>导入文件...并导入xlwings.bas文件。) 。它可以在xlwings安装目录中找到。

答案 1 :(得分:0)

最后,我最终创建了.exe文件,而不是尝试自己调用脚本。

所以,我应用了cx_Freeze,创建了.exe文件,然后将它们称为

Script_path1 = "C:\Users\" + Environ("Username") & "\Documents\Promo_models\get_sku_data\gui_changed.exe"
wsh.Run Script_path1, windowStyle, waitOnReturn

答案 2 :(得分:0)

以下是一些可供尝试的选项。

RetVal = Shell("<full path to python.exe> " & "<full path to your python script>")

或者如果python脚本与工作簿位于同一文件夹中,那么您可以尝试:

RetVal = Shell("<full path to python.exe> " & "ActiveWorkBook.Path & \<python script name>")