【问题标题】:vba get range of specific cells in a table (listobject)vba 获取表格中特定单元格的范围(listobject)
【发布时间】:2020-04-07 18:31:31
【问题描述】:

我试图让我的代码仅通过表引用范围(这样,如果我从表中添加或删除列,代码将不会更改)。 我有一个名为 MyTable 的表。 此表有一个标题“MyHeader”。

这里我得到了表格的最后一行:

dim numRecords as integer
numRecords  = sheet1.listobjects("MyTable").listRows.count 

现在我有一个函数,它接收一个范围类型参数并将一些东西放在这个范围内。

我希望函数接收列 'MyHeader' 和行号 numRecords 上的单元格。我将如何获取此单元格的范围(仅引用表格而不引用工作表的行或列)?

谢谢

【问题讨论】:

    标签: excel vba listobject


    【解决方案1】:

    你可以使用类似的东西:

    With Sheet1.ListObjects("MyTable").ListColumns("MyHeader").DataBodyRange
        .Cells(.Rows.Count, 1).Value = "test"
    End With
    

    【讨论】:

    • 谢谢。如果我想要一个大于一个单元格的范围怎么办?例如,列“MyHeader”行 1:5?
    【解决方案2】:

    @Rory 确实回答了我关于引用表格中特定单元格的问题。 在[this question][1] 的帮助下,我想出了如何引用表格中的一系列单元格,以防这对任何人都有帮助:

    Dim tbl As ListObject
    dim StartRow as integer
    
    startRow = 2
    Set tbl = Track.ListObjects("MyTable")
    
    tbl.ListColumns("MyColumn").DataBodyRange.Offset(startRow).Resize(tbl.ListRows.Count - startRow ) = "SomeValue"
    

    【讨论】:

    猜你喜欢
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多