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

时间:2015-07-27 20:41:06

标签: excel vba excel-vba

我一直在寻找这一段时间,但我还没有成功。

我正在尝试在VBA中使用range with cells命令,最后一行是可变的。而且,我没有连续的专栏。

我必须选择范围S2:S9U2:U9(如前所述,最后一行可以是变量)。我知道这个命令有效:

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

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

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

有谁知道怎么做?

3 个答案:

答案 0 :(得分:8)

另一个选择是在VBA中使用Union() Method

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

答案 1 :(得分:7)

你可以使用它:

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

答案 2 :(得分:1)

如果您想使用RangeCells坚持逻辑,请尝试以下操作:

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

有点长,但你会让你的逻辑工作 您还可以查看以下链接: