Ошибка свойства класса VBA

Я получаю ошибку runtine 91: Object vriable или With block variable not set, когда я запускаю простой код манипулирования классом.

вот мои классы

cЗадача:

Private pMile As cMile

Public Property Get Mile() As cMile
    Set Mile = pMile
End Property

Public Property Set Mile(Value As cMile)
    Set pMile = Value
End Property

Private Sub Class_Initializer()
    Set Me.Mile = New cMile
End Sub

cМиля:

Private pstatus As String

Public Property Get status() As String
    status = ppstatus
End Property

Public Property Let status(Value As String)
    pstatus = Value
End Property

И саб:

Sub testt()

    Dim ct As New cTasks

    ct.Mile.status = "compl"

    Debug.Print ct.Mile, ct.Mile.status

End Sub

Код переходит из подпрограммы в свойство get в cTask. При попытке выполнить строку "End Propety" выскакивает ошибка.

Я предполагаю, что что-то не так с моими классами, но я не знаю, что. Я только недавно начал использовать классы. Любые идеи?

Спасибо


person user2385809    schedule 17.02.2014    source источник
comment
Debug.Print ct.Mile не сработает, как будто вы хотите напечатать Workheets.Name. Вы должны указать, какой рабочий лист Workheets(1).Name. И для этого Worksheets должен быть набором рабочих листов, поэтому, вероятно, Mile тоже должен быть.   -  person simpLE MAn    schedule 17.02.2014


Ответы (1)


У вас опечатка:

Class_Initializer()

должно быть

Class_Initialize()

Это предотвращает создание ct Mile, поэтому доступ к нему вызывает ошибку, которую вы видите.

ppstatus тоже пишется неправильно.

person Alex K.    schedule 17.02.2014
comment
но могу ли я установить разные классы cMile для одного данного ct, а затем несколько статусов свойств для каждого? - person user2385809; 17.02.2014
comment
Мой вопрос, я думаю, заключается в том, как мне повторно инициализировать новый класс cMile в cTask без и как мне назвать его в подразделе, не теряя другого cMile? - person user2385809; 17.02.2014
comment
Я не понимаю, если вы сделаете исправления, ct.Mile должен работать нормально - person Alex K.; 18.02.2014