В данной статье мы разберем более подробно объект ListObjects, а также познакомимся с элементами “умной” таблицы.
Итак, объект ListObjects представляет собой коллекцию всех объектов ListObject на листе, в свою очередь каждый объект ListObject представляет таблицу на листе. Как мы знаем, таблица состоит из строк, столбцов, которые в свою очередь состоят из отдельных ячеек. Если необходимо сослаться на какую-либо ячейку обычного диапазона данных, то применяют объект Range, в который передают адрес ячейки. Но что, если на одном листе очень много небольших таблиц и, для решения задачи, достаточно использовать одну или несколько таблиц? Конечно, старый-добрый объект Range прекрасно справится с такой задачей, но такой способ, более ресурсоёмкий, нежели использование объекта ListObjects.
Предлагаю подробнее разобрать, из чего состоит таблица в Excel и как выглядят ссылки на элементы таблицы.
Ниже будут представлены строки кода в качестве примера.
Dim table ListObject Worksheet
Set table = ActiveSheet.ListObjects("Сумма_заказов")
MsgBox table.DataBodyRange(3, 2).Value 'выводим значение таблице в 3 строке и 2 столбце
table.Range.Select 'выделяем диапазон таблицы с заготолвками и итоговой строкой
table.ListColumns(2).DataBodyRange.Select 'выделяем второй столбец без заголовка и без итогового значения
table.ListRows(4).Range.Select 'выделяем 4ую строку (не включая заголовок!)
table.ListColumns.Add Position:=1 'добавляем первый столбец
table.ListRows.Add (5) 'добавляем строку под номером 5 (без учета заголовка)
table.ListRows(5).Delete 'удаляем строку под номером 5 (без учета заголовка)
table.ListColumns(1).Delete 'удаляем столбец под номером 1