Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共24 条记录, 每页显示 10 条, 页签: [1] [2][3]
[浏览完整版]

标题:目前不支持PY模块向VBA返回数组,这个可否优化?

1楼
分析者 发表于:2020/4/18 8:39:39
目前不支持PY模块向VBA返回数组,这个可否优化?
2楼
无为剑 发表于:2020/4/20 10:38:58
后面版本考虑增加
3楼
分析者 发表于:2020/5/24 14:11:50
V5.30 【beta2】 支持该功能了吗?
[此贴子已经被作者于2020/5/24 14:12:08编辑过]
4楼
无为剑 发表于:2020/5/25 15:23:27
已经支持
5楼
分析者 发表于:2020/5/25 18:29:01
那么,请问:
1、如何使用,没看到范例呢?没有例子,不知道咋用啊。
2、测试发现存在BUG,  Data = d.CallObject("zhibiao_vba",123,456)'调用PY模块中的函数,py模块中接受到的参数是错误的。
6楼
无为剑 发表于:2020/5/25 18:43:16
请具体描述一下错误现象,具体怎么是错误的? 

7楼
分析者 发表于: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编辑过]
8楼
分析者 发表于:2020/5/26 11:01:09
另外,可提供PY模块向VBA返回数组的例子吗?
9楼
无为剑 发表于:2020/5/26 11:25:42
我们用你给你的范例,在BETA2版本上测试正常
10楼
分析者 发表于:2020/5/26 11:46:53
那就怪了,我用的金字塔X64,V5.30 BETA1  测试就这样,要BETA2吗?
[此贴子已经被作者于2020/5/26 11:47:08编辑过]
共24 条记录, 每页显示 10 条, 页签: [1] [2][3]


Powered By Dvbbs Version 8.3.0
Processed in 0.03125 s, 2 queries.