Не удается назначить ошибку массива при попытке доступа к массиву, возвращенному пользовательской функцией Excel VBA - PullRequest
0 голосов
/ 14 марта 2019

Я очень ценю чью-то помощь в этом, так как это сводит меня с ума!

Я просто пытаюсь сгенерировать массив из 12 месячных периодов, используя предоставленный пользователем период в качестве ориентира. UDF работает правильно, так как я проверял (в самой UDF), что возвращаемый массив содержит ожидаемые значения. Интересно, что я делаю не так?

Заранее спасибо за помощь.

Sub TestPeriods()
Dim CurrentPeriod As Long
Dim arrPeriods(1 To 12) As Variant

CurrentPeriod = 201901
arrPeriods = GeneratePeriods(CurrentPeriod) 'Error on this line

End Sub

Function GeneratePeriods(CurrentPeriod As Long) As Variant

Dim CurrentPeriodMonth As Integer, PeriodSet(1 To 12) As Variant
Dim CurrentYear As Integer, PriorYear As Integer
CurrentPeriodMonth = CurrentPeriod Mod 100
CurrentYear = (CurrentPeriod - (CurrentPeriod Mod 100)) / 100
PriorYear = CurrentYear - 1

If CurrentPeriodMonth < 12 Then
    For i = 1 To CurrentPeriodMonth
        PeriodSet(i) = CLng(CurrentYear) * 100 + i
    Next i

    For i = CurrentPeriodMonth + 1 To 12
        PeriodSet(i) = CLng(PriorYear) * 100 + i
    Next i

Else
    For i = CurrentPeriodMonth To 12
        PeriodSet(i) = CLng(CurrentYear) * 100 + i
    Next i
End If

GeneratePeriods = PeriodSet

End Function
...