无法从 Excel 运行 Python (xlwings)



我对xlwings很陌生,我正在运行VBA中的代码,以便在Excel中编写一些文本的python脚本。

问题是,当我运行VBA代码时,它似乎非常出色,但我的excel表没有改变。然而,如果我从python运行python脚本,即使Excel文件已经打开,它也能正常工作。

VBA代码如下:

Sub Botón1()
Dim obj As Object
Dim pyexe, pyscript As String
Set obj = VBA.CreateObject("Wscript.Shell")
pyexe = """C:UsersxxxAppDataLocalProgramsPythonPython36-32python.exe"""
pyscript = "C:UsersxxxDocumentsPrueba.py"
obj.Run pyexe & pyscript, 1, True
End Sub

python代码如下:

import xlwings as xw
wb = xw.Book('Libro1.xlsm')
sht = wb.sheets['Hoja1']
sht.range('A1').value = 'Hi!'

两个文件(Libro1.xlsm和Prueba.py(都保存在同一个文件夹中。当我运行excel宏时,它会打开cmd提示符,但在excel spreashet中什么也没发生。我还没有安装xlwings插件,但我认为没有必要这样做,以便做我想做的事情。

你能帮我找出可能出了什么问题吗?

我正在阅读这篇文章:https://devblogs.microsoft.com/scripting/how-can-i-get-the-command-window-to-stay-open-after-running-a-command-line-tool/

并解释了使用.run相当于调用Cmd.exe。如果我打开cmd,我只需要用.py扩展名写我的python文件名就可以运行它。所以我发现";pyexe";没有必要。

解决方案:

Sub Botón1_Haga_clic_en()
Dim obj As Object
Set obj = CreateObject("Wscript.Shell")
obj.Run "C:UsersxxxDocumentsPrueba.py", 1, True
End Sub

最新更新