以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- 目前不支持PY模块向VBA返回数组,这个可否优化? (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=175584) |
-- 作者:分析者 -- 发布时间:2020/4/18 8:39:39 -- 目前不支持PY模块向VBA返回数组,这个可否优化? 目前不支持PY模块向VBA返回数组,这个可否优化? |
-- 作者:无为剑 -- 发布时间:2020/4/20 10:38:58 -- 后面版本考虑增加 |
-- 作者:分析者 -- 发布时间:2020/5/24 14:11:50 -- V5.30 【beta2】 支持该功能了吗? [此贴子已经被作者于2020/5/24 14:12:08编辑过]
|
-- 作者:无为剑 -- 发布时间:2020/5/25 15:23:27 -- 已经支持 |
-- 作者:分析者 -- 发布时间:2020/5/25 18:29:01 -- 那么,请问: 1、如何使用,没看到范例呢?没有例子,不知道咋用啊。 2、测试发现存在BUG, Data = d.CallObject("zhibiao_vba",123,456)\'调用PY模块中的函数,py模块中接受到的参数是错误的。
|
-- 作者:无为剑 -- 发布时间:2020/5/25 18:43:16 -- 请具体描述一下错误现象,具体怎么是错误的? |
-- 作者:分析者 -- 发布时间:2020/5/26 11:00:36 -- 回复:(无为剑)请具体描述一下错误现象,具体怎么是... 如下是窗口输出 Result:-1979711488.0 10:58:33 > -1979711488 10:58:33 > -1.6259745436952323e-260 如下是PY函数和VBA调用函数 #函数,供VBA调用,计算指标 def zhibiao_vba(x1,x2):print(x1) print(x2) return str(x1+x2) \'调用py模块
sub Test \'创建外部对象,启用Python引擎 \'Set d = CreateObject("Stock.Python") \'载入Python模块,模块名为MyPython \'ret = d.ImportModule("jzt_MyPython1") If ret <> 1 Then \'当载入失败,打印错误原因 Msg = d.GetErrorInfo() Application.MsgOut Msg Set Msg = Nothing\'使用完毕需要 Set Nothing销毁以免出现内存泄漏 Exit Sub End If \'\'调用PY模块中的函数,并获取返回值 xyz1=1 Data = d.CallObject("zhibiao_vba",123,456)\'调用PY模块中的函数 If IsEmpty(Data) Then \'当py模块返回为空 Msg = d.GetErrorInfo() Application.MsgOut Msg Set Msg = Nothing\'使用完毕需要 Set Nothing销毁以免出现内存泄漏 Exit Sub End If \'打印返回值 application.MsgOut "Result:"&Data \'Set d = nothing\'使用完毕需要 Set Nothing销毁以免出现内存泄漏 end Sub [此贴子已经被作者于2020/5/26 11:02:05编辑过]
|
-- 作者:分析者 -- 发布时间:2020/5/26 11:01:09 -- 另外,可提供PY模块向VBA返回数组的例子吗? |
-- 作者:无为剑 -- 发布时间:2020/5/26 11:25:42 -- 我们用你给你的范例,在BETA2版本上测试正常 |
-- 作者:分析者 -- 发布时间:2020/5/26 11:46:53 -- 那就怪了,我用的金字塔X64,V5.30 BETA1 测试就这样,要BETA2吗? [此贴子已经被作者于2020/5/26 11:47:08编辑过]
|