本帖最后由 williamwangc 于 2013-2-18 16:16 编辑
在学习类模块的内容,正在学习类与类之间的构建关系和COLLECTION,在网上也找了许多文章。尝试写了2个类。不过没有成功,请各位大能帮忙。
原题目网址:http://wenku.baidu.com/view/1d280466f5335a8102d22002.html
原题目是这样的:
(一)构建两个类: 1.Student类 具有2个属性: (1)Name:可读写。 (2)Id:可读写,但只能写一次。格式为字母S加两位整数,如S01,S02…等。 2.Students类 具有1个属性,3个方法,2个事件: (1)Count属性:只读,返回Student成员数量。 (2)Item方法:使用下标如Stus.Item(i)的方式调用,返回相应的Student成员,i可以是Student成员的自然顺序,也可以是Student成员的Id。 (3)Add方法:增加Student成员。当增加成员时,按顺序递增生成成员的Id,每个Id号只用一次,不因删除成员受影响。 (4)Remove方法:删除Student成员。 (5)BeforeAdd事件:在增加成员前作出响应,允许用户取消增加成员。 (6)AfterRemove事件:在删除成员后响应。
建立Student类基本无问题。但在建立Students时出现了一些问题。
我应用COLLECTION类建立Students的一些对象。
如下面代码所示:
Stud类:
Private mstrName As String
Private mstrId As String Public Property Get Name() As String
Name = mstrName
End Property Public Property Let Name(strNewName As String)
mstrName = strNewName
End Property Public Property Get Id() As String
Id = mstrId
End Property Public Property Let Id(strNewId As String)
mstrId = Format(strNewId, "S00")
End Property
Studs类:
Private col As Collection Public Function Add(strNewName As String, strNewId As String) As Stud
Dim st As New Stud
st.Id = strNewId
st.Name = strNewName
col.Add st, st.Id
Set Add = st
End Function Public Property Get Count() As Integer
Count = col.Count
End Property
在模块1中建立了sub进行测试:
代码如下:
Sub t()
Dim st As Stud
Set st = New Stud
Dim sts As Studs
Set sts = New Studs
Set st = sts.Add("abc", "S02")
Debug.Print sts.Count
End Sub
结果出现了错误:对象变量或with变量未设置
|