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

Sub对账()DimLineNo1AsInteger'银行存款日记账初始行号LineNo1=5DimSheet1AsWorksheetSetSheet1=Workshee... 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 展开
 我来答
阿可的生活日记
高能答主

2020-06-06 · 好好生活的样子真的很美
阿可的生活日记
采纳数:236 获赞数:220051

向TA提问 私信TA
展开全部

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

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

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

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

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

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

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

扩展资料:

下标越界注意事项:

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

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

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

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式