excel 宏,运行错误9 ,下标越界

这是比较两个表.执行的时候老是提示“运行错误9,下标越界”Sub交叉电子表比较宏()''Macro1Macro'''=============比较字段并标记单元格====... 这是比较两个表. 执行的时候老是提示“运行错误9,下标越界”
Sub 交叉电子表比较宏()
'
' Macro1 Macro
'

'
'=============比较字段并标记单元格===========
a = "A表"
MsgBox ("程序运行提示:请注意切换到中文半角输入,所有输入的数字不能为中文数字")
a = InputBox("请输入A工作表名称【这一张表是运动表, 即用这张表上的每一条数据逐一的和另一张参照表的每一条数据作比对!】(如:A表):")
agj = InputBox("请输入A工作表需要比较的关键字段列序号【这个字段是运动表和参照表都有的相同数据的关键字段,从左起分别为1列,2列...,依此类推关键字段列序号】(如:1 2 3 ..):")
abj = InputBox("请输入A工作表中空字段列号【这个字段一定是没数据的字段,一般输入末尾字段,用来在A工作表中标记B工作表中也发现有这一条数据的标记。】(如:20, 21,22..):")

B = "B表"
B = InputBox("请输入B工作表【参照表表名,这是一张静止表,等待A工作表的每一条记录来和它的每一条记录作比对】(如:B表):")
bgj = InputBox("请输入B工作表需要比较的关键字段的列序号【参照表,关键字段列序号】(如:1 2 3 ..):")
bbj = InputBox("请输入B工作表目前无数据的空列序号【参照表,一般输入末尾空字段,用来在A工作表中标记B工作表中也发现有这一条数据的标记。】(如:15, 23..):")

MsgBox ("比较马上开始,请稍后.....请一直等到提示窗口出现!!! 若出现“错误提示9,下标界越”的错误提示:请点击“结束”,重新运行宏,重新检查输入数据!")

n = 0
i = 1
Do While Sheets(a).Cells(i, 1) <> ""

j = 1

Do While Sheets(B).Cells(j, 1) <> ""

If Trim(Sheets(a).Cells(i, Val(agj))) = Trim(Sheets(B).Cells(j, Val(bgj))) Then
Sheets(a).Cells(i, Val(abj)) = "【" & B & "表中有】"
Sheets(B).Cells(j, Val(bbj)) = "【" & a & "表中有】"

'数据字段拷贝区 (默认为将运动表考第二列数据拷贝到参照表第2列)

'Sheets(B).Cells(j, 2) = Sheets(a).Cells(i, 2)

n = n + 1
End If

j = j + 1

Loop

i = i + 1
Loop

MsgBox ("已写入" & n & "条数据")
'===========================================

End Sub
展开
 我来答
chaohua008
2012-10-18 · TA获得超过1.1万个赞
知道大有可为答主
回答量:5800
采纳率:14%
帮助的人:3049万
展开全部
在提示下标越界时,点“调试”,会打开VBA代码窗口,看一下是在哪个语句上出现错误,此时,将鼠标放在错误语句上,可以显示出错误变量的“当前值”。由于这个代码是针对你的指定工作表的,所以在出现错误时要结合你的表格来分析错误原因。
追问

我连错误都看不懂..请指教. 我有两个表..字段差不多..我想比对两个表有啥不一样的地方..就出现这个了. 代码不是我写的.

追答
你把鼠标放在那一句黄色底纹的cells(i,1)这句的i上面,看它的当前值是多少,最好你将留个QQ号,聊天方式沟通还方便些。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式