【发布时间】:2018-01-24 13:59:47
【问题描述】:
首先,如果我使用了不正确的术语,请原谅我对我的问题的解释,我没有经验并且是自学的。
我正在学习使用类模块来设置“对象”以更轻松地引用变量并运行常用函数。我遇到的问题是我找不到有关如何设置类模块的信息,该模块可以充当集合以利用集合中固有的 add 函数。
例如,我的父类模块名为 clsSchool
在这个类模块中,我定义了一个对象,这样我就可以设置一个“子”类,clsTeacher
在我的 clsTeacher 类模块中,我设置了一个字符串变量名称。这就是我的 2 个类模块的外观。
clsSchool
Public Student As Object
clsTeacher
Public Name as String
在我的模块中
modSchool
Set mySchool = New clsSchool
Set mySchool.Teacher = New clsTeacher
mySchool.Teacher.Name = "Jim"
此时,我的代码正是我想要的,使用变量 mySchool.Teacher.Name 来调用“Jim”非常容易,我还可以使用带有 mySchool.Teacher 的 while 循环来调用我拥有的各种变量在我的 clsTeacher 中定义
我的问题是我想添加多个教师,而不必在我的代码顶部设置多个课程,因为教师的数量可能会有所不同。 IE。以下确实有效,但有局限性。
modSchool
Set mySchool = New clsSchool
Set mySchool.Teacher1 = New clsTeacher
Set mySchool.Teacher2 = New clsTeacher
Set mySchool.Teacher3 = New clsTeacher
mySchool.Teacher1.Name = "Jim"
mySchool.Teacher2.Name = "Jack"
mySchool.Teacher3.Name = "John"
我想要的是类似于集合的工作方式。 IE。我想找到教师的总数(不同)并创建一个 for 循环来为每个唯一的教师创建一个新的 clsTeacher。我想要的是类似以下内容,但我被卡住了,找不到任何有助于解释如何设置以下内容的资源。
modSchool
Set mySchool.Teacher = New clsTeacher
n_teachers = 6
for i=1 to n_teachers
mySchool.Teacher(i).Name = Range("A1").Offset(i,0)
Next i
这样我可以很容易地记住老师 1 或老师 2 的名字,并使用 while/for 循环来做到这一点。
【问题讨论】: