使用VBA动态调整Listobject表的大小

问题描述 投票:9回答:2

我想通过VBA更改对象表的大小,我尝试修改msdn.microsoft.com中有关listobject.resize方法的代码,但我想动态地在每行中加载数据。

我正在尝试但无济于事的代码:

Sub resizedata()
Dim ws As Worksheet
Dim ob As ListObject
Dim Lrow1 As Long

Lrow1 = Sheets("db_goods").Cells(Rows.Count, "E").End(xlUp).Row
Set ws = ActiveWorkbook.Worksheets("db_goods")
Set ob = ws.ListObjects("Table1")

ob.Resize Range("A1" & Lrow1)

End Sub

有人可以帮忙吗?

提前致谢

enter image description here

excel vba excel-vba
2个回答
12
投票

问题是Range("A1" & Lrow1)返回$A$112的范围,因为你传递Range函数"A1" & "12"的连接结果。

尝试替换此行:

ob.Resize Range("A1" & Lrow1)

有了这个:

ob.Resize ob.Range.Resize(Lrow1)

2
投票

有办法避免计算最后一行:

Sub ResizeListDyn()
    Dim tbl As ListObject
    Set tbl = ActiveSheet.ListObjects(1)
    tbl.Resize tbl.Range.CurrentRegion
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.