| --  作者: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编辑过] 
 |