【发布时间】:2014-05-09 14:24:59
【问题描述】:
我有一个 python 脚本,我将其转换为 COM 服务器。现在我想从 VBA (Access) 调用它。
我试过这个:
Sub test()
Dim PyScript
Dim var
Set PyScript = CreateObject("PythonDemos.CodeScript")
var = PyScript.CodeReader()
Debug.Print var
End Sub
但我在 CreateObject(...) 处收到错误: 自动化错误 2147024770
根据我的阅读,这意味着找不到模块“PythonDemos”。
这是python代码:
class Main:
_public_methods_ = ['CodeReader']
_reg_progid_ = "PythonDemos.CodeScript"
_reg_clsid_ = "{B74B241B-0699-4332-8145-145512D332D1}"
def CodeReader(self, item=None):
#do stuff here and return values
if __name__ == '__main__':
win32com.server.register.UseCommandLine(Main)
它自己运行良好,注册为 COM 服务器没有问题。
我的问题是:如何从 vba 中正确调用这个 python 脚本?我的错在哪里?
【问题讨论】: