使用VBA调用xlwings时出现“无效的过程调用或参数”错误的原因及解决咨询
使用VBA调用xlwings时出现“无效的过程调用或参数”错误的原因及解决咨询
我最近在尝试用xlwings从VBA里运行一段简单的Python脚本,结果碰到了「运行时错误'5':无效的过程调用或参数」的问题。
我怀疑问题出在程序找不到正确的Python文件上——毕竟相关错误说明提到,如果尝试调用当前平台上无效的过程,就会触发这个报错。
我已经仔细看过xlwings的官方文档,也翻了不少类似的论坛帖子,但还是没能解决问题。
我的Excel文件名叫hello.xlsm,想要调用和它同文件夹里的hello.py,用到的VBA代码如下:
Sub HelloWorld() RunPython "import hello; hello.world()" End Sub
hello.py的代码是这样的:
# hello.py import numpy as np import xlwings as xw def world(): wb = xw.Book.caller() wb.sheets[0]['A1'].value = 'Hello World!'
我的xlwings配置文件内容如下,另外我也试过把PYTHONPATH改成C:\hello,把INTERPRETER_WIN改成pythonw.exe,但都没效果:
"PYTHONPATH","C:\hello" "INTERPRETER_WIN","C:\Users\matt.ward\AppData\Local\Microsoft\WindowsApps\python3.12.exe"
我已经确认Excel里已经勾选了xlwings引用模块,按道理应该能运行hello.py里的world函数,但现在一直报错,看起来程序根本没进入Python代码的执行环节。
有没有人遇到过类似的问题?能不能给我一些排查方向的建议?
备注:内容来源于stack exchange,提问作者Matthew Ward




