Работа с умной таблицей из кода VBA Excel. Обращение к ячейкам, строкам и столбцам умной таблицы. Добавление и удаление строк и столбцов.
Обращение к умной таблице
Все примеры кода в этой статье привязаны к таблице с именем «Таблица1», расположенной на активном листе:
Обращение к умной таблице:
1 |
ActiveSheet.ListObjects("Таблица1") |
Обращение к диапазону умной таблицы на рабочем листе:
1 |
ActiveSheet.ListObjects("Таблица1").Range |
Проверяем:
1 |
Debug.Print ActiveSheet.ListObjects("Таблица1").Range.Address 'Результат: $B$3:$G$9 |
Далее все примеры кода VBA Excel, чтобы их не дублировать, будут представлены как аргументы метода Debug.Print.
Обращение к строкам
Работа с умной таблицей — обращение к строке заголовков:
1 |
Debug.Print ActiveSheet.ListObjects("Таблица1").Range.Rows(1).Address 'Результат: $B$3:$G$3 |
Таким же образом можно обращаться и к остальным строкам таблицы (Строка1-Строка6), указывая индекс нужной строки от 2 до 7.
К записям таблицы (Строка1-Строка6) обращаются через коллекцию ListRows, указывая индекс записи от 1 до 6:
1 2 3 4 5 |
With ActiveSheet.ListObjects("Таблица1") Debug.Print .ListRows.Count 'Результат: 6 Debug.Print .ListRows(1).Range.Address 'Результат: $B$4:$G$4 Debug.Print .ListRows(2).Range.Address 'Результат: $B$5:$G$5 End With |
Обращение к столбцам
Обращение к третьему столбцу умной таблицы из кода VBA Excel:
1 2 3 4 5 6 7 8 |
With ActiveSheet.ListObjects("Таблица1") 'Обращение через диапазон умной таблицы Debug.Print .Range.Columns(3).Address 'Результат: $D$3:$D$9 Debug.Print .Range.Columns.Count 'Результат: 6 'Обращение через коллекцию ListColumns Debug.Print .ListColumns(3).Range.Address 'Результат: $D$3:$D$9 Debug.Print .ListColumns.Count 'Результат: 6 End With |
Обращение к ячейкам
Работа с умной таблицей — обращение к ячейке «E7» с отображением ее значения:
1 2 3 4 5 |
With ActiveSheet.ListObjects("Таблица1") Debug.Print .Range.Cells(5, 4) 'Результат: 91 Debug.Print .ListColumns(4).Range(5) 'Результат: 91 Debug.Print .ListRows(4).Range(4) 'Результат: 91 End With |
Вставка и удаление строк
Вставка новой строки в конец умной таблицы:
1 |
ActiveSheet.ListObjects("Таблица1").ListRows.Add |
Удаление последней строки:
1 2 3 |
With ActiveSheet.ListObjects("Таблица1") .ListRows(.ListRows.Count).Delete End With |
Вставка новой строки на место пятой записи (Строка5 в таблице) со сдвигом пятой и нижерасположенных записей вниз:
1 |
ActiveSheet.ListObjects("Таблица1").ListRows.Add 5 |
Удаление пятой строки:
1 |
ActiveSheet.ListObjects("Таблица1").ListRows(5).Delete |
Вставка и удаление столбцов
Вставка нового столбца в конец умной таблицы из кода VBA Excel:
1 |
ActiveSheet.ListObjects("Таблица1").ListColumns.Add |
Удаление последнего столбца:
1 2 3 |
With ActiveSheet.ListObjects("Таблица1") .ListColumns(.ListColumns.Count).Delete End With |
Вставка нового столбца на место четвертой графы таблицы со сдвигом четвертой и последующих граф вправо:
1 |
ActiveSheet.ListObjects("Таблица1").ListColumns.Add 4 |
Удаление четвертого столбца таблицы:
1 |
ActiveSheet.ListObjects("Таблица1").ListColumns(4).Delete |
Создание и удаление умной таблицы описано в статье VBA Excel. Создание таблицы (умной, обычной)
Добрый день!
подскажите пожалуйста, как вставить в умную таблицу несколько строк?
Здравствуйте, Екатерина!
Несколько строк вы можете вставить циклом:
Здравствуйте все.
При выполнении кода, на строке
.ListRows.Add
выдавало ошибку"Method Add of ListRows object is failed"
. И Excel перезагружался. Два дня мучился, не мог разобраться. На одном форуме нашел ответ — название "Умной таблицы" должно быть на английском языке. Помогло.Автору этой статьи СПАСИБО. Вы очень помогаете нам — новичкам… да и не только новичкам.
Обсуждение закрыто.