如何修改VBA循环,仅遍历Excel表格数据行且排除表头?
解决VBA遍历表格数据行的问题
修改后的代码
For Each r In Sheet20.ListObjects("Table24").ListRows d(r.Range.Cells(1, 2).Value) = 1 Next
问题原因说明
- VBA中单元格索引是1-based(从1开始),原代码里的
Cells(0, 2)会向上偏移一行,指向表格的表头行,这就是你误以为循环包含表头的原因。 ListObjects("Table24").ListRows本身就是表格的所有数据行集合,不包含表头,所以循环结构不需要调整,只需要修正单元格引用的索引即可。- 遗漏最后一行的问题也是因为
Cells(0, 2)的无效索引导致的,改为Cells(1, 2)后就能正确获取最后一行的第二列数据。
内容的提问来源于stack exchange,提问作者71GA
相关产品推荐
相关产品推荐

