Изменение размера таблицы Listobject динамически с помощью 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 = ActiveWorkbook.Worksheets("db_goods")

Вопрос:

Я хочу изменить размер таблиц объектов через 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 = ActiveWorkbook.Worksheets(«db_goods») Set ob = ws.ListObjects(«Table1») ob.Resize Range(«A1» & Lrow1) End Sub

Лучший ответ:

Задача Range(«A1» & Lrow1) возвращает диапазон $A$112, потому что вы передаете функцию Range результат привязки «A1» & «12».

Попробуйте заменить эту строку:

ob.Resize Range(«A1» & Lrow1)

С помощью этого:

ob.Resize ob.Range.Resize(Lrow1) Ответ №1

Есть способ избежать вычисления последней строки:

Sub ResizeListDyn() Dim tbl As ListObject Set tbl = ActiveSheet.ListObjects(1) tbl.Resize tbl.Range.CurrentRegion End Sub Ответ №2

Если вам нужно изменить размер только размера строки:

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 argument is a Range object (not a size spec). End With

Изменение размера только столбца будет симметричным:

With tbl.Range tbl.Resize .Resize(, .CurrentRegion.Columns.Count) End With

Оцените статью
Добавить комментарий