【问题标题】:Select dynamic range without header选择不带标题的动态范围
【发布时间】:2014-08-01 04:42:13
【问题描述】:

如果 B 列中有数据,我想选择 A2:BG2 范围内的所有行。第 2 行是标题。

几乎有效:

Set rng = Range("A2:BG2").Resize(Cells(Rows.Count, "B").End(xlUp).Row)
rng.Select

但它在选择中包含最后一行后面的空白行,其中包含 B 中的数据。例如,我在 B2:B6 中有数据,但这会选择第 2-7 行。偏移似乎只是改变了整个动态范围。我错过了什么?

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    问题在于你

    Cells(Rows.Count, "B").End(xlUp).Row
    

    您从 A1(第 1 行)开始计算已用行,但您的范围从 A2(第 2 行)开始 所以它会在底部添加额外的空白行。因此,只需减去您不必要地计算的行。

    Cells(Rows.Count, "B").End(xlUp).Row
    

    最终代码将是

    Set rng = Range("A2:BG2").Resize(Cells(Rows.Count, "B").End(xlUp).Row - 1)
    rng.Select
    

    希望这对你的谜题有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      相关资源
      最近更新 更多