Страницы: 1
RSS
Добавление строки в конец умной таблицы
 
Коллеги, приветствую!

На листе есть 2 умные таблицы. Пусть называются Tabl1 и Tabl2
Задача. Если в умной таблице в последнюю строку добавляется информация, код VBA должен добавить еще одну строку в конец редактируемой умной таблицы.
Примечание. В документе может быть 2 листа. На каждом листе будут располагаться по 2 умные таблицы.
Пример файла во вложении.
 
Может это поможет https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=113123
или
https://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables
Изменено: Kuzmich - 27.03.2021 15:02:20
 
Основной "затык", который у меня сейчас - не могу определить название умной таблицы, которая сейчас редактируется.
 
Информация к размышлению.
Если в строку под умной таблицей добавить данные, то Excel сам, без VBA, добавит строку в таблицу.
 
Это понятно. Но!!! Новая строка между таблицами не появится!!!
Как видно в файле таблицы идут одна за одной, и если добавлять строку в первую таблицу, то нужно, что бы между таблицами 1 и 2 автоматически добавлялась пустая строка.
 
Тему не помню, но лайфхак там был
Создайте между таблицами объединенную ячейку.
 
Цитата
RAN написал:
Создайте между таблицами объединенную ячейку
Не помогло. Как и ожидалось - заполняется последняя свободная строка. она становится строкой умной таблицы, но новая пустая строка не добавляется.
 
Kuzmich дал ссылку The VBA Guide To ListObject Excel Tables, там всё есть для создания нужного макроса.
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not IsEmpty(Target.Cells(1)) Then
        Dim v As ListObject
        For Each v In ActiveSheet.ListObjects
            If Not Intersect(Target, v.Range) Is Nothing Then
                v.Range.Rows(v.Range.Rows.Count + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                Exit For
            End If
        Next
    End If
End Sub
Страницы: 1
Наверх