VB 下标越界问题

来源:百度知道 编辑:UC知道 时间:2024/05/13 15:45:29
我刚刚开始学VB,希望给与支持。
下面是我做的程序,运行时出现
运行时错误'9'
下标越界

Sub Result()

Dim Material(100000) As String
Dim Size(100000) As String
Dim Length(100000) As String
Dim Weight(100000) As String
Dim Square(100000) As String

Application.ScreenUpdating = True

Worksheets("Result").Activate
Cells.Select
Selection.Clear

Worksheets("Material").Activate

a = 0
While a < 10000
a = a + 1
If Cells(1 + a, 1) = " " And Cells(1 + a + 1, 1) = " " Then GoTo line10
Material(a) = Cells(1 + a, 2)
Size(a) = Cells(1 + a, 3)
Length(a) = Cells(1 + a, 4)
Weight(a) = Cells(1 + a, 5)
Square(a) = Cells(1 + a, 6)

Wend
line10:
b = a

Worksheets("Result").Activate

Cells(1, 1) = "No."
Cells(1, 2) = "Material"
Cells(1.3) = "Size"
Cells(

这是在哪一句挑出来的啊?我感觉是你的abc的值有问题

报错的时候弹出来的对话框有3个按钮吧 你点那个debug按钮就知道是哪句出错了,是由黄色高亮显示的

下标越界就是你定义的某个操作下标的变量在某个时刻超过了你定义的数组的下标上限,或者超过了系统的承受能力(这个可能性不大)。
你需要知道是哪个变量在哪一个自增循环中超过了范围,这需要在代码中加断点,有两种方法,一个种是在你要断点的地方前加代码stop
比如
stop
c = c + 1
然后按f5是继续执行程序,按f8是继续逐句执行程序(每执行一句停止一下)

第二种方法 是在代码区左侧有一条灰色的区域,在某条代码前单击那个区域就会在那里出现一个红点,表示这一句被加上了断点(有些代码是不能加断点的,比如变量定义的部分)在程序要执行这一句的时候就会停止。
然后按f5是继续执行程序,按f8是继续逐句执行程序(每执行一句停止一下)

加个断点 跟踪一下 看看下标值不就知道了吗