无法使用xlwings从宏调用Python脚本



我使用的是xlwings v0.25.0,并且具有Excel加载项的匹配版本。我也在使用Office 365和Python 3.7.4。

我正在尝试从Excel中的vba宏运行一个Python脚本testing_xlwings.py

import xlwings as xw
def main():
sheet = xw.Book.caller().sheets[0]
sheet.range('B10').value = 'IT WORKED!!!'

我已将宏分配给按钮,当我单击运行时,我收到以下错误Compile error: Sub or Function not defined。我的宏子看起来像这样:

Sub Run_xlwings()
RunPython "import testing_xlwings.py; testing_xlwings.main()"
End Sub

如果我将sheet = xw.Book.caller().sheets[0]更改为sheet = xw.Book('testing_workbook.xlsm').sheets[0],则执行脚本并将文本放入Excel文件中。

我还从xlwings示例页面下载了蒙特卡洛示例。当我打开文件并尝试使用宏运行.py脚本时,我收到以下错误:AttributeError: module 'xlwings.utlis' has no attribute 'prepare_sys_path'

要从宏运行脚本,我需要更改什么?

我可以通过按Alt+F11打开VBA编辑器来获取调用Python脚本的宏。从顶部的工具栏中,我选择了Tools->References和我勾选了xlwings的复选框。单击"确定"后,我就可以运行脚本了。

如果仍然出现错误。。。尝试安装以前版本的xlwings。控制台类型:

pip install xlwings==0.27.2
xlwings addin install

最新更新