如下程序段定义了学生成绩的记录类型,由学号、姓名和三门课程成绩(百分制)组成。
Type Stud
no As Integer
name As String
score(1 to 3)As Single
End Type
若对某个学生的各个数据项进行赋值,下列程序段中正确的是( )。
A) Dim S As Stud
Stud.no=1001
Stud.name="舒宜"
Stud.score=78,88,96
B) Dim S As Stud
S.no=1001
S.name="舒宜"
S.score=78,88,96
C) Dim S As Stud
Stud.no=1001
Stud.name="舒宜"
Stud.Score(1)=78
Stud.score(2)=88
Scud.score(3)=96
D) Dim S As Stud
S.no=1001
S.name="舒宜"
S.score(1)=78
S.score(2)=88
S.score(3)=96
参考答案:D
解析: 本题主要考查了VBA程序中的记录类型和一维数组的一股用法。
VBA程序中,定义记录类型的一般格式如下。
Tvpe <记录名>
<成员定义1>
<成员定义2>
End Type
定义好记录类型之后,声明记录类型变量与声明一般的变量一样,其一般格式为:
Dim <变量名> As <记录名>
声明了记录类型变量后,要引用其中的成员须使用“.”运算符,其格式为:
<变量名>.<成员名>
由此可见,本题的选项A)和C)可以排除,因为它们使用的是:<记录名>.<成员名>。
而VBA一维数组的赋值必须为每个变量分别赋值,采用“S.score(1)=78”类似的形式,故答案选D)。