以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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编辑过]