求VB高手帮我解决问题:如何在标准模块定义自定义类型?

在标准模块定义自定义类型如下:TypestudTypenameAsString*5sexAsString*1telephoneAsLongschoolAsString*1... 在标准模块定义自定义类型如下:
Type studType
name As String * 5
sex As String * 1
telephone As Long
school As String * 10
End Type
然后再窗体模块的声明该类型的数组和变量 n
Dim stud(99) As studType
Dim n% 请问这2行应该写在哪里?是在form-load里面吗?
程序代码为:
Private Sub Command1_Click()
If n >= 100 Then
MsgBox "输入人数超过数组声明个数", , "警告"
Else
With stud(n)
.name = Text1: .sex = Text2: .telephone = Text3: .school = combo1.text
End With
Text1 = "": Text2 = "": Text3 = "": text4 = ""
n = n + 1
End If
End Sub

Private Sub Command2_Click()
Dim i%
Picture1.Cls
Picture1.Print "姓名 性别 电话 学校 "
Picture1.Print "-------------------------------------"
For i = 0 To n - 1
With stud(i)
Picture1.Print Trim(.name); Tab(9); .sex; Tab(14); .telephone; Tab(22); .school
End With
Next i
End Sub

Private Sub Command3_Click()
Dim tschool As String, i%
Picture2.Cls
tschool = InputBox("请输入要查询的学校")
Picture2.Print "姓名 学校"
For i = 0 To n - 1
If Trim(stud(i).school) = Trim(tschool) Then
Picture2.Print stud(i).name, stud(i).school
End If
Next i
End Sub
我按照上面写代码,结果总出问题,关于自定义类型的,我应该怎么在标准模块定义自定义类型,还有如何在窗体模块声明该类型的数组和变量,谢谢,能指导我做出来的重赏。
展开
 我来答
就九佳
2011-11-06 · TA获得超过142个赞
知道答主
回答量:178
采纳率:0%
帮助的人:201万
展开全部
试了试,没问题。
Dim stud(99) As studType
Dim n% 请问这2行应该写在哪里?是在form-load里面吗?
这两句写在Form代码窗口最前面option explicit后面。
像这样:
Option Explicit
Dim stud(99) As studType
Dim n%
Private Sub Command1_Click()
。。。
。。。
追问
非常感谢,高手!!你能告诉我Option Explicit 是声明窗体级变量吗?在哪些情况下要用到?能跟我讲一下吗?
追答
Option Explicit 语句 
在模块级别中使用,强制显示声明模块中的所有变量。Option Explicit 语句必须写在模块的所有过程之前。如果模块中使用了 Option Explicit,则必须使用 Dim、Private、Public、ReDim 或 Static 语句来显式声明所有的变量。如果使用了未声明的变量名在编译时会出现错误。如果没有使用 Option Explicit 语句,除非使用 Deftype 语句指定了缺省类型,否则所有未声明的变量都是 Variant 类型的。注意:使用 Option Explicit 可以避免键入已有变量时拼错,在变量的范围不是很清楚的代码中使用该语句可以避免混乱。

用这个避免程序太长的时候出现变量定义问题。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式