小编Ale*_*der的帖子

获取表列的范围(或值)Excel VBA

我正在尝试使用 VBA 代码获取 Excel 中表格第二列的单元格范围,并在每次用户窗体初始化时表中存在新条目时自动更新此范围。起初我认为这很容易,但现在我完全迷失了,不知道如何让我的代码工作。我可能缺少一些东西。

我在这个论坛上搜索了一下,发现了两种可能的解决方案,第一个是:

Sub test()
    Dim table As ListObject
    Set table = ActiveSheet.ListObjects("Table1")
    Debug.Print table.ListColumns(2).Range.Rows.Count
End Sub
Run Code Online (Sandbox Code Playgroud)

这段代码有点作用。Table1每次我运行它时,它都会成功识别所有新行。问题是它标识了整个表,我只想获取单个列的范围。无论我做什么,变量table总是获得整个表的范围。

我发现了第二种方法如下:

Sub test()
    Dim tbl as ListObject
    Dim rng as Range
    Set tbl = ActiveSheet.ListObjects("Table1")
    Set rng = tbl.ListColumns(2).DataBodyRange
End Sub
Run Code Online (Sandbox Code Playgroud)

这段代码也有点工作,但前提是表只有一行数据。如果我的表只有一行数据,则变量rng可以毫无问题地识别表和行。但是,变量的值是单元格的值(例如“示例文本”),而不是单元格范围。如果我尝试添加更多行,则变量rng仍为空。

我真的很感激任何对此的指导。我还应该提到,即使在主动使用不同的工作表(例如C3:C5. 当输入更多数据以获得更新的范围时,例如C3:C80. 我也不想选择范围,只是获取该信息并将其用于其他目的。

excel vba

5
推荐指数
1
解决办法
4万
查看次数

标签 统计

excel ×1

vba ×1