测试结果如图所示。现象与你说明的情况是一样的。
创新互联公司主营奇台网站建设的网络公司,主营网站建设方案,APP应用开发,奇台h5微信小程序开发搭建,奇台网站营销推广欢迎奇台等地区企业咨询
原因分析:你所声明的数组a(4,1)实际上是a(0 to 4, 0 to 1)。在截图下方的自动窗口栏可以看到,当程序运行完For循环后,x的值已经变为5,所以a(x,0)即为a(5,0),该变量与你声明的a(4,1)也就是a(0 to 4, 0 to 1)比较,发现下标已经超限,也就是程序报出的错误:索引超出了数组界限。
结束:a(x, 0) = Nothing : a(x, 1) = Nothing,不太理解该语句的主要目的,如果是为了释放内存,那么应该直接a=Nothing。
欢迎交流如有需要,请留下QQ欢迎交流。
Dim sr As StreamReader = File.OpenText("E:\1.txt")
Dim input As String
input = sr.ReadLine()
While (Not input Is Nothing And i = 16)
title(i) = Trim(input)
title2(i) = title(i).Replace(Space(3), vbCrLf)
input = sr.ReadLine()
i = i + 1
End While
sr.Close()
不用 Split 这样说行了
在VB里,"平均分"(pingjunfen), 这是数组的调用方法,当然会报错了
这样改吧:
Dim xingming As String
Dim yuwen As Short
Dim shuxue As Short
Dim yingyu As Short
Dim zonghe As Short
Dim pingjunfen As Short
xingming = InputBox("输入姓名", "输入名字吧")
yuwen = InputBox("输入语文成绩", vbOKOnly)
shuxue = InputBox("输入数学成绩", vbOKOnly)
yingyu = InputBox("输入英语成绩", vbOKOnly)
zonghe = yuwen + shuxue + yingyu
pingjunfen = zonghe / 3
MsgBox("平均分:" pingjunfen, [vbOKOnly])
你的数组引用n在哪里更改的呢?
更改之前要判断一下是否超了界,
if nubound(music) then n=ubound(music)'如果走出范围,取最大范围
还有
Dim n As Integer = 100直接定义维数,还是建议用动态数组
F(X)数据定义有问题。X此时为0。
解决方法:使用动态数组。
Dim F0, F1, F2, F3, F4, F() As Double 'F为动态数组
x = Val(TextBox2.Text)
REDIM F(x) '重新定义