使用“范围”的“单元格”

我一直在寻找这一点,而且我还没有成功。

我想在VBA中使用与单元格命令范围,最后一行是可变的。 而且,我没有获得连续的专栏。

我必须select范围S2:S9U2:U9U2:U9 ,最后一行可以是variables)。 我知道这个命令的作品:

 Range(Cells(2, 19), Cells(NumberofRows, 19)).select 

但是我需要select2个不连续的列。 我正在尝试这样的事情,但没有成功:

 Range(Cells(2, 19), Cells(NumLinhas, 19);(Cells(2, 21), Cells(NumLinhas, 21)).Select 

有谁知道如何做到这一点?

另一种select是在VBA中使用Union()方法 。

 Union(Range(Cells(2, 19), Cells(NumLinhas, 19)), _ Range(Cells(2, 21), Cells(NumLinhas, 21))).Select 

如果你想添加更多的范围,你可以继续添加如下所示的范围。 当您将循环添加到联合的范围时,这是特别有用的。

 Dim rngUnion As Range Set rngUnion = Union(Range("D1:D2"), Range("H1:H2")) Set rngUnion = Union(rngUnion, Range("B1:B2")) Set rngUnion = Union(rngUnion, Range("F1:F2")) rngUnion.Select 

你可以使用这个:

 Range("S2:S" & intLastRow & ",U2:U" & intLastRow).Select 

如果你想坚持你的逻辑使用RangeCells试试这个:

 Range(Range(Cells(2, 19), Cells(NumLinhas, 19)).Address & "," & _ Range(Cells(2, 21), Cells(NumLinhas, 21)).Address).Select 

有点长,但你会使你的逻辑工作。
您也可以检查以下链接:

  • 使用单元格
  • dynamic范围
  • 避免select