将Excel表格的指定列作为范围

sd2nnvve  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(162)

我在工作表中有一个名为table的表。我想获取一个由表体的指定列组成的区域。下面的代码可以工作:

Public Function GetColumn(colNum as Integer) As Range
    With Sheet.ListObjects("table").DataBodyRange
        Set GetColumn = Range(.Cells(1, colNum), .Cells(.Rows.Count, colNum))
    End With
End Function

我觉得一定有更优雅的方法来解决这个问题。
看起来Columns属性是一种可行的方法,但我似乎无法正确使用语法。

niwlg2el

niwlg2el1#

您可以使用范围的Columns-property来取得该范围中某一栏的范围,只要指定栏号即可。请注意,索引永远是相对的,如果您的范围从C3开始,则栏(2)会指涉工作表的栏D。
所以对于你的情况:
包括标题单元格:

Set GetColumn = ws.ListObjects("Table").Range.Columns(colNum)

无标题单元格:

Set GetColumn = ws.ListObjects("Table").DataBodyRange.Columns(colNum)

**Update:**当您访问这样的Range并使用foreach对其进行迭代时,它将只执行一次迭代,包含所有单元格。修复很简单:

Set GetColumn = ws.ListObjects("Table").DataBodyRange.Columns(colNum).Cells

相关问题