VBA用于在Excel表中选择多个列

eli*_*i-k 8 excel vba excel-vba excel-tables

正如我在这里学到的(也在SO中引用),以下代码可用于选择第3列的数据主体Table1:

ActiveSheet.ListObjects("Table1").ListColumns(3).DataBodyRange.Select
Run Code Online (Sandbox Code Playgroud)

我需要帮助一起选择多个列 - 比如列3到5,或列X到X + 3.

使用这个问题的答案,我想通过使用实际的列名来中途使用:

Range("Table1[[Column3]:[Column5]]").Select
Run Code Online (Sandbox Code Playgroud)

但我需要能够使用列号而不是名称,因为它们将是函数的结果(即列X到X + d).

小智 13

对于连续范围,只需调整单个列的大小.

ActiveSheet.ListObjects("Table1").ListColumns(3).DataBodyRange.Resize(, 3).Select
Run Code Online (Sandbox Code Playgroud)

对于更复杂的选择,请使用Union在.Select过程之前收集它们.

With ActiveSheet.ListObjects("Table1")
    Union(.ListColumns(3).DataBodyRange, _
          .ListColumns(4).DataBodyRange, _
          .ListColumns(5).DataBodyRange).Select
End With
Run Code Online (Sandbox Code Playgroud)

有关更好的方法,请参见如何避免在Excel VBA宏中使用"选择".