我使用的是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