运行时出现错误9下标越界,该怎么解决?

Sub 对账()Dim LineNo1 As Integer '银行存款日记账初始行号LineNo1 = 5Dim Sheet1 As WorksheetSet Sheet1 = Worksheets("银行存款日记账")Dim Sheet2 As WorksheetSet Sheet2 = Worksheets("银行对账单")Sheet1.Columns("L:L").ClearContentsSheet2.Columns("H:H").ClearContentsDo While Sheet1.Cells(LineNo1, 11).Value <> "" '余额数据不为空 jf = Sheet1.Cells(LineNo1, 9).Value '借方金额 df = Sheet1.Cells(LineNo1, 10).Value '贷方金额 LineNo2 = 6 '银行对账单初始号 If jf <> "" Then Do While Sheet2.Cells(LineNo2, 5).Value <> "" Or Sheet2.Cells(LineNo2, 6).Value <> "" '借方或者贷方金额不为空 If jf * 1 = Sheet2.Cells(LineNo2, 6).Value * 1 And Sheet2.Cells(LineNo2, 8).Value <> "√" Then ' 如果金额相等 并且 还没有对过账 Sheet1.Cells(LineNo1, 12).Value = "√" Sheet2.Cells(LineNo2, 8).Value = "√" Exit Do End If LineNo2 = LineNo2 + 1 Loop Else Do While Sheet2.Cells(LineNo2, 5).Value <> "" Or Sheet2.Cells(LineNo2, 6).Value <> "" '借方或者贷方金额不为空 If df * 1 = Sheet2.Cells(LineNo2, 5).Value * 1 And Sheet2.Cells(LineNo2, 8).Value <> "√" Then '如果金额相等 并且 还没有对过账 Sheet1.Cells(LineNo1, 12).Value = "√" Sheet2.Cells(LineNo2, 8).Value = "√" Exit Do End If LineNo2 = LineNo2 + 1 Loop End IfLineNo1 = LineNo1 + 1LoopEnd Sub

用Redim界定一下维数和尺寸即可解决此问题。

运行时错误9下标越界是因为定义的动态数组没有确定维数和尺寸。定义成固定维数和尺寸的,或用Redim界定一下维数和尺寸即可解决此问题。

Excel提示下标越界是VBA程序运行的一个错误提示,原因有以下几个:

1、引用了不存在的数组元素:下标比可能下标范围大或小,或是在应用程序中这一边的数组没有指定范围。

2、声明数组时没有指定元素的数目:引用了不存在的集合成员。 

3、使用速写形式的下标,结果指定了错误的元素。

4、引用或操作的工作薄、工作表不存在。

扩展资料:

下标越界注意事项:

1、注意包含第一行,格式可以根据设置(数据库的),也可以默认,原表有主键就添加或者设置,与数据库保持一致即可。

2、创建追加记录查询,将刚才生成新的表添加进来,其次选择追加,在弹出框选择需要追加记录的位置即可。

3、注意字段名不能有空格或者换行。

参考资料来源:百度百科-下标越界

温馨提示:答案为网友推荐,仅供参考