Не совсем уверен, что я понимаю, что вам нужно, но я думаю, вы хотите установить объект "DayClass", который будет содержать значения дней и возвращать их другим функциям, когда они необходимы:
(1) в редакторе VBA вставьте модуль CLASS
(2) в окне свойств этого модуля, измените имя на (скажем) DayClass (переопределяя имя по умолчанию "Class1".)
(3) поместите этот код в модуль DayClass:
Private mDays As Variant ' member variable to hold the days array
' initialization method to populate the array
Private Sub Class_Initialize()
mDays = Array(1, 3, 5, 7, 10, 11)
End Sub
' little function to return a particular value from the array
Public Property Get Day(i As Long)
Day = mDays(i)
End Property
(4) Чтобы увидеть приведенный выше код в действии,вставьте обычный МОДУЛЬ и поместите в него эту маленькую функцию, которая может быть вызвана из строки формул (если хотите):
Public Function GetDays(i As Long)
Dim DC As New DayClass ' DC is dim'd of type DayClass
' so via DC you can get at whatever is in there
GetDays = DC.Day(i) ' this function returns the i'th value of the
' array in DayClass, via DayClass's "Get Day" property
End Function
(5) Так как «GetDays» является публичной функцией в обычном кодемодуль, вы можете проверить это, введя следующую формулу в любую ячейку электронной таблицы:
=GetDays(3)
cell result = 7