2014-02-17 47 views
0

我得到runtine错误91:对象vriable或块变量没有设置,当我运行一个简单的类操作代码。类属性错误VBA

这里是我的班

cTask:

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 

cMile:

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”行时,弹出错误。

我猜想我的班级一定是错的,但我不知道是什么。我刚刚开始使用类。有任何想法吗?

谢谢

+0

'Debug.Print ct.Mile'不起作用,就像你想要打印'Workheets.Name'。您必须指定哪个工作表“工作表(1)。名称”。为此,“工作表”必须是工作表集合,所以'Mile'应该也是。 –

回答

1

你有一个错字:

Class_Initializer() 

应该

Class_Initialize() 

这可以防止ctMile被创建的,因此访问它引发你看到的错误。

ppstatus也拼写错误。

+0

对不起,这是愚蠢的 – user2385809

+0

但我可以设置不同的类cMile为一个给定的ct然后多个属性状态为每个? – user2385809

+0

我的问题我想是如何在没有cTask的情况下重新初始化一个新的cMile类,以及如何将它命名为sub,而不会丢失其他cMile? – user2385809