首页 文章

从VBA运行python脚本

提问于
浏览
0

我已经尝试了几种从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

    xlwings声称从excel制作python非常容易:

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

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

  • 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
    
  • 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>")
    

相关问题