excelVBA中,下标越界是什么意思(下面有详细的,求高手帮助!!)

A列数据有18635条,是统计该列数据连续1次...到连续10次的数值和,VBA是:PrivateSubCommandButton1_Click()Dimi,j,k,m,... A列数据有18635条,是统计该列数据连续1次...到连续10次的数值和,VBA是:
Private Sub CommandButton1_Click()
Dim i, j, k, m, a(1 To 10) As Integer
j = 0
Cells(Range("A65536").End(xlUp).Row + 1, 1) = 0
For i = 1 To Range("A65536").End(xlUp).Row
If Cells(i, 1).Value = 0 Then
m = j
For k = i - j + 1 To i
a(m) = a(m) + Cells(k - 1, 1).Value
Next k
j = 0
Else
j = j + 1
End If
Next i
For k = 1 To 10
Cells(2, k + 2) = a(k)
Next k
Cells(Range("A65536").End(xlUp).Row, 1) = ""
End Sub
数据不多时可以计算,多了就这样,不明白???
展开
 我来答
yangsanmyth
2013-04-28 · TA获得超过573个赞
知道小有建树答主
回答量:396
采纳率:0%
帮助的人:297万
展开全部
不知道你的数据是否有连续多于10个大于0的数据,如果你的数据连续大于10个不等于0就会出现此错误。因为大于10个,你的J值就会大10进而m值就会大于10,数组a(m)下标就会越界.
追问
有大于10个的,你帮改改??
追答
大于30000就显示“溢出”,因为你定义的变量i,j,k为短整形int,范围只能到20000多,你把变量定义为短整形的定义成长整形Long,应该就没问题了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式