Я очень ценю чью-то помощь в этом, так как это сводит меня с ума!
Я просто пытаюсь сгенерировать массив из 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