Я пишу функцию Excel VBA, которая возвращает массив для использования в других функциях.Когда я проверяю функцию GenerateBlendedReturnSeries
в моем листе Excel и использую ctlr-shift-enter
, чтобы увидеть полный результат, весь массив - все нули.Странно, однако, когда я проверяю Debug.Print (BlendedReturnSeriesArray(300, 1))
, возвращается правильное ненулевое значение.Почему функция не может правильно вернуть этот результат?Возвращаемый массив имеет размер 329 x 1 и содержит ""
значения в строках, когда умножение / сложение в for loop
возвращает ошибку.
Function GenerateBlendedReturnSeries(AccountID1 As String, Account1Proportion As Double, _
Optional ByVal AccountID2 As String, Optional ByVal Account2Proportion As Double, _
Optional ByVal AccountID3 As String, Optional ByVal Account3Proportion As Double) As Variant 'Vs. As Double()
' CODE IN BETWEEN
Dim BlendedReturnSeriesArray As Variant
ReDim BlendedReturnSeriesArray(ArraySize, 1)
Debug.Print (ArraySize)
On Error Resume Next
For i = 0 To UBound(BlendedReturnSeriesArray)
BlendedReturnSeriesArray(i, 1) = _
Account1PeriodReturnSeriesArray(i, 1) * Account1Proportion _
+ Account2PeriodReturnSeriesArray(i, 1) * Account2Proportion _
+ Account3PeriodReturnSeriesArray(i, 1) * Account3Proportion
'Debug.Print (BlendedReturnSeriesArray(i, 1))
'Debug.Print (i)
Next i
On Error GoTo 0
Debug.Print (BlendedReturnSeriesArray(300, 1))
GenerateBlendedReturnSeries = BlendedReturnSeriesArray 'BlendedReturnSeriesArray
End Function