以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  高级功能研发区  (http://www.weistock.com/bbs/list.asp?boardid=5)
----  自定义一个函数,VBA过程中调用出错,求助  (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=159898)

--  作者:爬山虎福气
--  发布时间:2017/11/27 16:47:35
--  自定义一个函数,VBA过程中调用出错,求助

通过自定义函数功能框,自定义一个函数:

   Function test(Formula,m,n)
        \'系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
        test=0
        test=m+n
    End Function

 

在过程中调用:

Sub getdate()
    Application.MsgOut "a72--"
    dim m
    dim n
    m=12
    n=13
    aa=test(m,n)
    Application.MsgOut "a73--"&aa
end sub

 

消息窗口仅出现:

    a72-

错误提示:450

 

请问错误在哪?谢谢。


--  作者:爬山虎福气
--  发布时间:2017/11/27 20:43:49
--  

已解决。

初学。

原来 Function test(Formula,m,n),中的formula是可以去掉的,以为系统默认不能动。


改成:

 Function test(m,n)
        \'系统会在逐K线模式解释公式时的每个周期都会调用此函数一遍,因此设计时应该注重程序的执行效率,不要重复的执行一些没必要的代码
        
        test=m+n
 End Function

就能运行了!


--  作者:yukizzc
--  发布时间:2017/11/27 20:54:17
--  

您理解错了

 Function test(Formula,m,n)这个定义的函数是给pel程序调用所起的,所以第一个参数必须是公式对象

 

如果你直接在vba里定义函数的话不需要通过在pel自定义函数列表去定义,直接在vba模块里定义function就可以了。

你2楼的写法是纯vba之间使用,如果要和pel交互就必须是1楼用法


--  作者:爬山虎福气
--  发布时间:2017/11/27 21:55:38
--  

正在看自定义函数里给对范例,也对范例的(formula,....)有新的认识。

请推荐下相关金字塔的VBA教程


--  作者:yukizzc
--  发布时间:2017/11/28 8:54:52
--  

那个范例是对vba和pel交互才特别定制的,不是传统vba定义函数的例子

vba基础你百度看看就好,或者有基础的话遇到问题百度下

金字塔封装的对象,直接看帮助-vba编程信息这里都有


--  作者:爬山虎福气
--  发布时间:2017/11/28 10:27:48
--  
VBA相关的,的确百度能找到;
就是和pel交互的说明文档,这部分内容特别匮乏,或者信息比较零散,不好学习。
只能看着之前的例子,慢慢理解,摸索,测试,但像之前,有可能还理解错了。
我是想解决之前提的这个问题:http://www.weistock.com/bbs/dispbbs.asp?BoardID=2&ID=158766&skin=0
到现在只解决了:
1、如何打开excel
2、如何往excel写入数据
但是涉及输出的数据应该是要和pel交互的,还是摸不着头脑。
比如: Function test(Formula,m,n)中formula这个是指pel中的公式?指标,还是指vba中的,强烈渴求出个交互的说明文档啊

--  作者:yukizzc
--  发布时间:2017/11/29 9:24:07
--  

http://www.weistock.com/WeisoftHelp/visualbasiczidingyihanshu.htm

主要看你怎么用,你要在pel自己定义函数就看这个链接

 

如果你纯粹在vb界面写你的程序,你完全不需要看上面的内容


--  作者:爬山虎福气
--  发布时间:2017/11/29 23:17:54
--  

首先,谢谢您的回复。

这个说明还有里面举例的两个刚好今天都仔细的看了。

就是对他们如何交互还是不够理解。

对指标公式对描绘,pel里对函数比较全面,但输出结果到excel没办法;

输出excel,VBA现在可以做到了,但仅用vba来对指标进行编写,好像很缺乏函数,比如像cross(ma5,ma20)这个,在vba中如何实现?