欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 自定义一个函数,VBA过程中调用出错,求助

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3531人关注过本帖树形打印复制链接

主题:自定义一个函数,VBA过程中调用出错,求助

帅哥哟,离线,有人找我吗?
爬山虎福气
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:标准版用户 帖子:56 积分:0 威望:0 精华:0 注册:2014/12/4 23:22:31
自定义一个函数,VBA过程中调用出错,求助  发帖心情 Post By:2017/11/27 16:47:35 [只看该作者]

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

   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

 

请问错误在哪?谢谢。


 回到顶部
帅哥哟,离线,有人找我吗?
爬山虎福气
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:标准版用户 帖子:56 积分:0 威望:0 精华:0 注册:2014/12/4 23:22:31
  发帖心情 Post By:2017/11/27 20:43:49 [只看该作者]

已解决。

初学。

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


改成:

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

就能运行了!


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/11/27 20:54:17 [只看该作者]

您理解错了

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

 

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
爬山虎福气
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:标准版用户 帖子:56 积分:0 威望:0 精华:0 注册:2014/12/4 23:22:31
  发帖心情 Post By:2017/11/27 21:55:38 [只看该作者]

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/11/28 8:54:52 [只看该作者]

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

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
爬山虎福气
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:标准版用户 帖子:56 积分:0 威望:0 精华:0 注册:2014/12/4 23:22:31
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/11/29 9:24:07 [只看该作者]

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

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
爬山虎福气
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:标准版用户 帖子:56 积分:0 威望:0 精华:0 注册:2014/12/4 23:22:31
  发帖心情 Post By:2017/11/29 23:17:54 [只看该作者]

首先,谢谢您的回复。

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

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

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

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


 回到顶部