请教一个简单VB程序的问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 05:53:58
我要编个程序求数字的离差,现在只编到一半。
按钮1是生成15个随机数字的,存在a(15)里
按钮2是用来求离差的。按下按钮2时需要调用a(15)里的15个随机数。但运行时发现按下按钮2时a(15)里所有的数都变成0了。

错在哪里啊?
Option Explicit
Dim a(15) As Integer
Private Sub Command1_Click()
Randomize
Dim i As Integer, a(15) As Integer
For i = 1 To 15
a(i) = Int(Rnd * 90) + 10
Text1 = Text1 & a(i) & " "
Next i
End Sub

Private Sub Command2_Click()
Dim sum As Integer
Dim i As Integer
Dim b(15) As Single
Dim av As Single
For i = 1 To 15
sum = sum + a(i)
Next i
av = sum / 15
For i = 1 To 15
b(i) = a(i) - av
Text2 = Text2 & b(i) & " "
Next i
End Sub

错在" Dim i As Integer, a(15) As Integer"此句

显然你在两个子程中调用a(15),需要定义其为窗体级的数组变量,代码一开始也申明了,但放在Sub Command1_Click()下二次定义a(15),最终将其成了一个局部变量,在Sub Command2_Click()中就无效了.

我给你改了下一下
Option Explicit
option base 1
Dim a(15) As Integer'这个不要重复定义,你已经定义它为全局变量了
Private Sub Command1_Click()
Dim i As Integer
Randomize
For i = 1 To 15
a(i) = Int(Rnd * 90+10)
Text1= Text1 & a(i) & " "
Next i
End Sub