VBA代码选择指定工作表、表格列范围报错,请求排查解决
问题解决:Excel VBA 中正确获取表格列范围的方法
你的代码错误在于不能用Select方法来赋值给范围对象,Select只是执行选中操作,不会返回可赋值的Range对象。要获取表格中指定列的范围,应该用以下两种方式:
获取列的数据区域(不含表头):
Set rSelection = Worksheets("Warehouse Movement").ListObjects("WM_Data").ListColumns("StockCode").DataBodyRange获取列的完整范围(包含表头):
Set rSelection = Worksheets("Warehouse Movement").ListObjects("WM_Data").ListColumns("StockCode").Range
如果你的rSelection是用来后续做数据清洗,通常推荐用DataBodyRange,因为它只包含实际的数据行,避免处理表头。
另外注意:如果表格中该列没有数据,DataBodyRange会返回Nothing,建议提前判断是否为空,比如:
Set rSelection = Worksheets("Warehouse Movement").ListObjects("WM_Data").ListColumns("StockCode").DataBodyRange If Not rSelection Is Nothing Then ' 执行数据清洗操作 Else MsgBox "该列无数据" End If
内容的提问来源于stack exchange,提问作者marcus potgieter
相关产品推荐
相关产品推荐

