【问题标题】:Select entire column in table using Excel VBA使用 Excel VBA 选择表中的整个列
【发布时间】:2018-12-10 01:57:56
【问题描述】:

我在 Excel 工作表中有一个表格,我想选择整个第一行。有没有比普通的更容易/更快的方法来引用表格

 Range("A2").End(xlDown).Select 

方法?似乎通过使用表我应该获得更容易访问数据的路径。 谢谢。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    使用这些代码,您可以选择表格的不同部分。

    整个表:
    ActiveSheet.ListObjects("Table1").Range.Select

    表头行:
    ActiveSheet.ListObjects("Table1").HeaderRowRange.Select

    表数据:
    ActiveSheet.ListObjects("Table1").DataBodyRange.Select

    第三栏:
    ActiveSheet.ListObjects("Table1").ListColumns(3).Range.Select

    第三列(仅限数据):
    ActiveSheet.ListObjects("Table1").ListColumns(3).DataBodyRange.Select

    选择表数据的第 4 行:
    ActiveSheet.ListObjects("Table1").ListRows(4).Range.Select

    选择第三个标题:
    ActiveSheet.ListObjects("Table1").HeaderRowRange(3).Select

    选择第 3 行第 2 列中的数据点:
    ActiveSheet.ListObjects("Table1").DataBodyRange(3, 2).Select

    小计:
    ActiveSheet.ListObjects("Table1").TotalsRowRange.Select

    有关表格的完整指南,请参阅The VBA Guide To ListObject Excel Tables

    【讨论】:

    • 我的表头从A3开始。所以。我做了这个ActiveSheet.ListObjects("Table3").HeaderRowRange.DataBodyRange.Copy。这给出了错误。如何选择表从A3开始?
    • 你到底想复制什么?整个表还是只是表头?这个答案中给出了两个例子。
    • 我需要带有标题的表格。但是,我的表头从A3 开始。因此,当我使用("Table 1").Range().copy 将表格复制到不同的工作表时,它也需要A1A2,这是我不需要的。我试过("Table1").HeaderRowRange.DataBodyRange.Copy 它不起作用。解决方案是什么?
    • @user9431057 no ActiveSheet.ListObjects("Table1").Range.Select 只会选择属于该表的所有内容。我建议对此提出一个新问题并在该问题中显示屏幕截图。无法在评论中回答。
    • 是的,这有点棘手,我会尽快发布问题!
    【解决方案2】:

    这是我所知道的最短路径:

    Rows(1).Select
    

    Here你可以找到一些关于它的例子。

    【讨论】:

    • 这不会选择表格的一行,而是选择整个工作表的一行。但我们在这里讨论的是表格中的格式化表格。见Overview of Excel tables
    猜你喜欢
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多