Excel VBA宏中如何获取数据表末列后一列指定区域并存为变量
VBA 实现获取原数据表最后一列右侧的指定目标区域
基于你已有的边界计算逻辑,直接复用已算出的行、列边界变量即可得到目标区域,无需重复遍历工作表,代码如下:
' 原有计算数据表全量范围的代码保留 vLookLastRow = Worksheets("worksheet1").Cells(Rows.Count, 1).End(xlUp).Row vLookLastCol = Worksheets("worksheet1").Cells(1, Columns.Count).End(xlToLeft).Column Set vLookRange = Worksheets("worksheet1").Cells(1, 1).Resize(vLookLastRow, vLookLastCol) ' 新增目标区域定义代码 Dim targetColRng As Range ' 定位规则:起始行为第2行(跳过表头),起始列为原最后一列+1,区域高度为总数据行数减1(匹配从第2行到最后一行的行数),宽度为1列 Set targetColRng = Worksheets("worksheet1").Cells(2, vLookLastCol + 1).Resize(vLookLastRow - 1, 1) ' 验证:调用Address属性即可得到你需要的"$T$2:$T$383"结果 Debug.Print targetColRng.Address
核心逻辑说明
- 列位置:直接对已存储的原表最后列序号
vLookLastCol做+1运算,自动定位到原表右侧相邻列,无需手动转换列字母 - 行范围:固定从第2行开始,通过
Resize方法将区域高度设置为vLookLastRow - 1,刚好覆盖到原表最后一行,不会出现多取空行的问题 - 自适应适配:无论原表的列数、行数后续怎么变化,这段代码都能自动匹配生成正确的目标区域,不需要硬编码行号列号
内容的提问来源于stack exchange,提问作者Daniel Livemore
相关产品推荐
相关产品推荐

