我尝试了几种从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
有什么想法吗?
答案 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>")