excel2016运行时出错9,下标越界怎么办

表格中插入了8列后,选择下拉菜单就会出现下标越界的错误,打开vba提示 arr(i, 2) = arr(i, 2) + arr(i, j)为黄色的,请高手帮忙解决,谢谢Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$1" Then n = Application.Match(Target.Value, Array("一季度", "二季度", "三季度", "四季度", "上半年", "下半年", "全年"), 0) With Worksheets("筹集使用表(季报)") r = .Cells(.Rows.Count, 1).End(xlUp).Row .Range("b5:c" & r).ClearContents arr = .Range("a5:cu" & r) Select Case n Case 1 To 4 For i = 1 To UBound(arr) For j = 4 + (n - 1) * 28 To 4 + (n - 1) * 28 + 27 Step 2 arr(i, 2) = arr(i, 2) + arr(i, j) arr(i, 3) = arr(i, 3) + arr(i, j + 1) Next Next Case 5 To 6 For i = 1 To UBound(arr) For j = 4 + (n - 5) * 56 To 4 + (n - 5) * 56 + 55 Step 2 arr(i, 2) = arr(i, 2) + arr(i, j) arr(i, 3) = arr(i, 3) + arr(i, j + 1) Next Next Case 7 For i = 1 To UBound(arr) For j = 4 To UBound(arr, 2) Step 2 arr(i, 2) = arr(i, 2) + arr(i, j) arr(i, 3) = arr(i, 3) + arr(i, j + 1) Next Next End Select .Range("b5").Resize(UBound(arr), 1) = Application.Index(arr, 0, 2) .Range("c5").Resize(UBound(arr), 1) = Application.Index(arr, 0, 3) End With End IfEnd Sub

1、引用了不存在的数组元素:下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。
2、声明数组时没有指定元素的数目:引用了不存在的集合成员。
3、使用速写形式的下标,结果指定了错误的元素。
4、引用或操作的工作薄、工作表不存在。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-07-15
一般是sheets()出错了
相似回答