以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  高级功能研发区  (http://www.weistock.com/bbs/list.asp?boardid=5)
----  PYTHON调用VBA函数无效  (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=175968)

--  作者:百湛必胜客
--  发布时间:2020/5/11 11:03:47
--  PYTHON调用VBA函数无效
Python中需要对金字塔消息框做定时清理,
我原来的VBA里有这个清理函数

Function clmsg(Formula,clkg)
    clmsg=0
    if clkg>=1 then
    Application.ClearMsg
    clmsg=1
    end if
    Application.MsgOut "清理了一下"
End Function

PYTHON中调用这个函数,为什么好象没反应,PEL自定义函数是可以清理的。
def init(context):      
    call_vba("clmsg",1)



--  作者:yukizzc
--  发布时间:2020/5/11 11:54:03
--  
Function clmsg(clkg)
    clmsg=0
    if clkg>=1 then
    Application.ClearMsg
    clmsg=1
    end if
    Application.MsgOut "清理了一下"
End Function

--  作者:yukizzc
--  发布时间:2020/5/11 11:55:06
--  

你参数定义错误了,vba里面那个formula是专门给pel调用时候才有的,其他时候调用不需要(pel调用时候会自动传递一个公式对象)

 

python 的调用和你在vba里面自己调用function一样,参数数量要一致


--  作者:百湛必胜客
--  发布时间:2020/5/11 12:07:23
--  
我还专门另建了一个函数,就象版主这个代码一样的,一样没反应哦
--  作者:yukizzc
--  发布时间:2020/5/11 12:17:24
--  

图片点击可在新窗口打开查看此主题相关图片如下:5ou{u18e72l8ada2fo6i.png
图片点击可在新窗口打开查看

--  作者:yukizzc
--  发布时间:2020/5/11 12:17:41
--  

图片点击可在新窗口打开查看此主题相关图片如下:}63t%1368rsrelc$tku}k)l.png
图片点击可在新窗口打开查看

--  作者:yukizzc
--  发布时间:2020/5/11 12:17:59
--  
我这里测试是可以清空的啊
--  作者:百湛必胜客
--  发布时间:2020/5/11 16:28:05
--  
你这个也异常!
按照程序的逻辑流程,最后应该只剩下"清理一下"这四个字,而\'55\'应该被清除掉了才对。

--  作者:yukizzc
--  发布时间:2020/5/11 17:36:56
--  

是有些异常,好像时灵时不灵的,这边会查下

[此贴子已经被作者于2020/5/11 17:37:06编辑过]

--  作者:百湛必胜客
--  发布时间:2020/5/11 18:36:39
--  
不容易啊,功能越强大,越费心费力,金字塔虽然不是最多人用的,但是是国内最强的。
功能不断的拓展,带来新的BUG,你们的开发费心了,不容易
[此贴子已经被作者于2020/5/11 18:36:54编辑过]