Excel 使用VBA动态调整Listobject表的大小
我想通过VBA更改对象表的大小,我试图修改MSDN中有关Excel 使用VBA动态调整Listobject表的大小,excel,vba,Excel,Vba,我想通过VBA更改对象表的大小,我试图修改MSDN中有关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
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
问题是范围(“A1”&Lrow1)
返回的范围是$a$112
,因为您正在将范围
函数传递给“A1”和“12”
的连锁结果
尝试替换此行:
ob.Resize Range("A1" & Lrow1)
关于这一点:
ob.Resize ob.Range.Resize(Lrow1)
有一种方法可以避免计算最后一行:
Sub ResizeListDyn()
Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects(1)
tbl.Resize tbl.Range.CurrentRegion
End Sub
如果只需要调整行尺寸标注的大小:
Dim tbl As ListObject
Set tbl = ActiveSheet.ListObjects("YourTableName")
With tbl.Range
tbl.Resize .Resize(.CurrentRegion.Rows.Count) 'NOTE: unlike the Range.Resize proprty, the Table.Resize
'method's argument is a Range object (not a size spec).
End With
仅调整柱尺寸将是对称的:
With tbl.Range
tbl.Resize .Resize(, .CurrentRegion.Columns.Count)
End With
我认为这个答案更有帮助,因为我观察到.End(xlUp)将跳转到表的最后一行,而不是跳转到相应单元格中包含实际内容的最后一行。谢谢,顺便说一句