将数组元素除以数组的总和 vba

问题描述

我正在创建一个数组 Z,然后我想将数组中的每个元素除以数组的总和,但是由于某种原因,当我尝试运行该函数时,我在单元格中检索了 #value 错误,但我不知道为什么,因为当我在工作表本身中应用完全相同的功能时,它工作正常。

Option Base 1
Function getZ(Stockreturns,c1)
Dim nCols As Integer
nCols = Stockreturns.Columns.Count

Dim covmatrix() As Double
ReDim covmatrix(nCols,nCols)

For i = 1 To nCols
    For j = 1 To nCols
        covmatrix(i,j) = Application.WorksheetFunction.Covariance_S(Stockreturns.Columns(i),Stockreturns.Columns(j))
    Next j
Next i
   
Dim Ret(),PortU(),Z(),output() As Double
ReDim Ret(nCols,1),PortU(nCols,1)


For i = 1 To nCols
    Ret(i,1) = Application.WorksheetFunction.Average(Stockreturns.Columns(i))
    PortU(i,1) = Ret(i,1) - c1
Next i

Z = Application.WorksheetFunction.MMult(Application.WorksheetFunction.MInverse(covmatrix),PortU)

For i = 1 To nCols
    output(i) = Z(i) / Application.Sum(Application.WorksheetFunction.MMult(Application.WorksheetFunction.MInverse(covmatrix),PortU))
Next i
getZ = output

End Function

到目前为止,这就是我的代码,它在最后一个 for 循环之前都可以正常工作。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)