如何用VBA代码选中Excel表格最后10行数据?
解决方法:选中ListObject最后10行数据行
问题分析
你的代码存在几个关键问题:
tblBAZA.Resize(LR, LC).Select完全多余,且Resize方法的参数是设置表格的新尺寸,此处逻辑无效tblBAZA.Range(LR, 1)的引用方式错误,ListObject的Range属性不能直接用这种参数格式定位范围- 未处理表格数据行不足10行的边界情况
正确代码实现
以下代码可自动选中表格最后10行数据行,若数据行不足10则选中所有数据行,新增行后运行会自动更新选中范围:
Sub SelectLast10TableRows() Dim tblBAZA As ListObject Dim totalDataRows As Long Dim startRow As Long Dim targetRange As Range ' 定位目标表格 Set tblBAZA = Sheets("BAZA").ListObjects("BAZA") ' 获取表格数据行总数(不含表头) totalDataRows = tblBAZA.ListRows.Count ' 计算选中起始行:数据行≥10则从倒数第10行开始,否则从第1行开始 startRow = IIf(totalDataRows >= 10, totalDataRows - 9, 1) ' 定位并扩展目标范围 Set targetRange = tblBAZA.ListRows(startRow).Range Set targetRange = targetRange.Resize(totalDataRows - startRow + 1) ' 选中目标范围 targetRange.Select End Sub
代码说明
tblBAZA.ListRows.Count直接获取表格有效数据行数量,比通过列范围计数更准确(列范围包含表头)- 用
IIf函数处理边界场景,避免出现无效的起始行号 - 通过
ListRows(startRow).Range定位起始行,再用Resize扩展至最后一行,确保选中连续的目标行
内容的提问来源于stack exchange,提问作者Pabtan
相关产品推荐
相关产品推荐

