-- 作者:dzfp2010
-- 发布时间:2010/3/14 11:13:55
-- VBA编写的,求N日平均值,请看看,存在什么问题呢?
现在的主要问题是,怎样才能把计算结果返回给调用这个函数的公式呢?
REM 求N日平均值 Function xMAN(Formula,N) \'创建窗格对象xGrid Set xGrid=UserFrame1.GetGridByName("Window1") \'创建历史数据对象xHistoryData Set xHistoryData=xGrid.GetHistoryData() \'如果历史数据存在问题 If xHistoryData.Count <N Then MsgBox "参数超出可用数据范围!。。。" Exit Function End If Dim i,j,xCount,xArray,y xCount=0 Set xArray=CreateObject("Stock.Array") \'通过两个For...Next循环来求N日平均 \'外循环 For i=0 To xHistoryData.Count-1 xCount=0 \'内循环 For j=0 TO N \'---------------- If i>=N Then y=i-j xCount=xCount+xHistoryData.Close(y) Else Exit For End If \'---------------- Next xCount=xCount/N xArray.AddBack(xCount) \'向调用该函数的公式返回结果 \'MsgBox "数组值是:"&xArray.GetAt(i) \'xMan=xArray.GetAt(i) Next \'MsgBox xArray.Count \'xMAN=xArray.Count \'得到公式对象 Set xGrid_1=UserFrame1.GetGridByName("Window5") Set xFormula=xGrid_1.GetFormulaByName("XMAN") Set xGetFormulaData=CreateObject("Stock.Array") xGetFormulaData = xFormula.VARDATA("ccc") Call Stock.Array.Copy(xArray,xGetFormulaData,xArray.Count) \'把数组值返回给公式对象的公式线:VVV xFormula.VarData("vvv") = xGetFormulaData \'将处理完毕得数组序列返回公式中 End Function
[此贴子已经被作者于2010-3-14 16:01:20编辑过]
|