以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  [求助]自定义函数编译不通过  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=8325)

--  作者:yeyi
--  发布时间:2011/10/10 10:00:23
--  [求助]自定义函数编译不通过

一个问题没有解决,又出现一个问题。

在自定义函数中加了一个参数TEST1(MSNO);(MSNO=401,为数值数据),编译公式无论如何通不过。

试了TEST1(401),不行;TEST1(MSNO),不行;

重新设个值N:=401,TEST1(N) 也不行。提示错误。

只好将原来的自定义函数CU_MA2改成我需要测试的程序,将TEST1(MSNO)改成CU_MA2(MSNO),则通过编译,正常运行。

请斑竹求助!!!!

目前版本号2.703,

 

 

下面为自定义函数源码:

 

Function CU_MA2(Formula,cyc)
    \'得到K线数据对象
 \'Set History = Formula.ParentGrid.GetHistoryData()
 \'若当前周期尚未到计算周期,不参与计算
 \'if Formula.IndexData < cyc-1 then
 \' CU_MA2 = 0
 \' exit function
 \'end if
 
 \'DataCount = 0
    \'for i = Formula.IndexData-cyc+1 to Formula.IndexData
     \'累加收盘价
    \' DataCount = DataCount + history.close(i)
    \'next
 \'CU_MA2 = DataCount / cyc
    Set wrd = CreateObject( "Word.Application")
    wrd.Visible = True
             wrd.Documents.Open "D:\\Weisoft Stock\\systemreport\\test.txt"
        Set wrd = Nothing
     CU_MA2 = 10
End Function

 

 

Function test1(Formula,cyc)
    \'得到K线数据对象
 application.MsgOut("tttt")
    Set wrd = CreateObject( "Word.Application")
    wrd.Visible = True
             wrd.Documents.Open "D:\\Weisoft Stock\\systemreport\\test.txt"
        Set wrd = Nothing
    test1=10


--  作者:fly
--  发布时间:2011/10/10 10:50:33
--  

如果将原来的自定义函数CU_MA2改成需要测试的程序,将TEST1(MSNO)改成CU_MA2(MSNO),则通过编译,正常运行。

 

那你写的程序应该是没问题的.


--  作者:26327756l
--  发布时间:2011/10/10 11:06:23
--  

我也做了测试 传递参数,用了数字或是变量都没有问题。

 

请问提示什么错误。

 

操作步骤是

1 先关闭VBA引擎。

2 在函数列表里打开,自定义函数,右击‘添加自定义函数’。

3 在添加对话框上 输入名称 和 参数 变量名。

4 在 Funaction 代码窗口里填写语句。

5 运行VBA引擎,即可。

[此贴子已经被作者于2011-10-10 11:07:06编辑过]

--  作者:yeyi
--  发布时间:2011/10/10 20:47:38
--  

经老大提醒,可能问题出错在参数 变量名是后续输入的。

并非在对话框中输入。因为第一次没有输入参数变量名,后来直接在FUNCTION 中添加。

请老大指正