老哥们寻求帮助,程序老是报下标做错误
vba吧
全部回复
仅看楼主
level 3
Must_ 楼主
老哥们看看哪点有问题呀,下标老报错误,求老哥们解惑
2024年01月25日 16点01分 1
level 3
Must_ 楼主
原本的程序是可以运行的,但是我为了方便 就把
If ws.Cells(i, 3).Value = "伯明翰". Then
改成了
If ws.Cells(i, 3).Value = ws.Cells(49, 2).Value Then
这样就报错了。请问老哥们怎么修改
2024年01月25日 16点01分 3
请问你现在报错是哪一行报错了呢?
2024年01月26日 05点01分
@ISD_狮子座 没有显示具体哪一行报错,但我找到是If Cells(i, 3).Value = ws.Cells(4, 2).Value,这句的问题,之前🟰后面是"汉字"的时候是可以运行,但改成这样就不能运行显示下标越界,但我对应单元格是有内容的
2024年01月26日 05点01分
@Must_ 既然是出下标报错的话就不可能只会有报错而不显示是哪一行报错的,而且你说的那个除非是你WS设置对SHEET3不存在外,应该是没什么 问题的
2024年01月26日 08点01分
level 3
Must_ 楼主
求老哥们救救我,我真没懂
2024年01月25日 16点01分 4
我认为你c47可能是最大行的,然后你c47还xlDown,就到了1048576行,你还offset往下偏移一行,问题是不存在1048577行,自然就是下标越界了。
2024年01月25日 19点01分
@烟雨江南ooo 哥,应该不是这个问题,因为我把If ws.Cells(i, 3).Value = "伯明翰". Then 改成了 If ws.Cells(i, 3).Value = ws.Cells(49, 2).Value Then。就运行报错了,之前是可以正常运行的
2024年01月26日 04点01分
@Must_ 表格截图,代码报错提示截图
2024年01月26日 06点01分
@Must_ 网络多年流传下来的名言:无图言屌[滑稽]
2024年01月26日 06点01分
level 7
单元格定位下标错误一律考虑是否出现0的情况,请打debug调试。
2024年01月26日 00点01分 5
哥,这个debug调试怎么调呀,直接在vba输入debug嘛,我萌新不太了解
2024年01月26日 05点01分
@Must_ debug点print i
2024年01月26日 07点01分
@秋塘明月 谢谢哥
2024年01月26日 13点01分
level 11
下标超际:指的就是对象名称后边括号内你指定的一个不存在的内容。
你这段代码中用了两个对象的下标,一个是Cells, 一个是Sheets
楼上烟雨江南提到了C47那个单元格,如果它是空的,End结果就是工作表最大行单元格,再Offset 下偏就是不存在。
另外一个是Sheets("Sheet3"), 如表名为Sheet3的表不存在,也会提示下标超界。
通常在代码层面,都不把工作表名字写死在程序上,这样使用人稍一改工作表名,你的代码就废了。
对工作表的引用,通常会用VBA工程内工作表的属性名,属性名字不随表的显示名字变化而变化。 啥是表属性的名字? 看附图,我图上Sheets("Sheet3")可直接用Sheet3, 用户爱改啥名字改啥名字,跟代码无关。
想了解下关于工作表的常用属性和方法,可以去围观下我的贴子:
https://tieba.baidu.com/p/8848588841
2024年01月26日 01点01分 6
哥,第一个问题和第二个问题我都避免了,但还是报下标越界,问题就出在If Cells(i, 3).Value = ws.Cells(4, 2).Value,这行代码上我之前在🟰后面加的是"汉字"是可以运行,但现在没法运行了
2024年01月26日 06点01分
@Must_ 代码注释:第一行为标题!!!!!(标题行很可能都是合并单元格),你却for i=1 to… 是不是你改了这里?别人原来应该是for i = 2 to…
2024年01月26日 06点01分
@烟雨江南ooo 哥,这个我后续改了标注忘删了。
2024年01月26日 06点01分
level 3
Must_ 楼主
老哥们指导指导
2024年01月26日 06点01分 7
level 3
Must_ 楼主
能加个微信指导更好,真心求教
2024年01月26日 06点01分 8
我回复了
2024年01月26日 06点01分
加我扣扣
2024年01月29日 01点01分
24823610
2024年01月29日 01点01分
level 3
Must_ 楼主
2024年01月26日 06点01分 9
@烟雨江南ooo 哥,这是表格图
2024年01月26日 06点01分
@Must_ 我就问你for i = 1 to…是不是原来是for i = 2 to…?
2024年01月26日 06点01分
@烟雨江南ooo 对,原来是
2024年01月26日 06点01分
@Must_ 因为你截图还是不够全面,所以我不知道是不是依然第一行是标题且存在合并单元格
2024年01月26日 06点01分
level 11
你的代码是完整的吗?从截屏上代码上看,明显多了一个End IF。你是多截了还是代码没截全?
2024年01月26日 14点01分 10
level 1
楼主还在吗
?私信和你说话了
2025年05月24日 18点05分 11
level 1
楼主还在吗?私信和你说话了
2025年05月30日 18点05分 12
1