Как добавить строку в таблицу?

Чего я хочу добиться.
Если в дочерней таблице есть заполненная строка, я хочу добавить новую строку.

Что я пробовал
, поскольку у меня есть 10 родительских таблиц друг под другом, я не могу использовать Cells(Cells.Rows.Count, "E").End(xlUp).Row, так как будет учитываться только последняя родительская таблица.

Поэтому я попытался сделать это с помощью listobjects.

Когда я пытаюсь добавить объект списка:

With Worksheets("Uitwendige scheidingen")
    .ListObject.Add(Range("F" & NextRow + 25)).Name = "tbl_schuindak_orientatie" & Rij
End With

(Rij = родительская таблица)

(NextRow = начальная позиция родительской таблицы)

получаю ошибку 438

Примечание
У меня не было никаких объектов списка, добавленных на лист ранее, поэтому родительские таблицы в основном являются «поддельными» таблицами, а не объектами списка.


person Nemoko    schedule 31.01.2020    source источник
comment
Вы не устанавливаете ListObject через свойство имени. Сначала вы добавляете его, а затем устанавливаете его имя.   -  person JvdV    schedule 31.01.2020
comment
Вы имеете в виду это так? .ListObject.Add (Range("F" & NextRow + 25)) Потому что это все равно выдает ту же ошибку:/   -  person Nemoko    schedule 31.01.2020
comment
Я добавил упрощенный пример ниже.   -  person JvdV    schedule 31.01.2020


Ответы (1)


Во-первых, вам нужно .Add и ListObject в коллекцию ListObjects. Кроме того, вы не можете установить новый ListObject через его свойство Name. Сначала вы должны инициализировать его с правильным исходным диапазоном. Затем переименуйте его после. В качестве упрощенного примера:

введите здесь описание изображения

Sub Test()

Dim nxt As Long
Dim tbl As ListObject

With ThisWorkbook.Worksheets("Sheet1")
    For x = 1 To 10 Step 3
        Set tbl = .ListObjects.Add(xlSrcRange, Source:=.Range(.Cells(x, 1), .Cells(x + 1, 1)), XlListObjectHasHeaders:=xlYes)
        tbl.Name = "Table" & x
    Next x
End With

End Sub

введите здесь описание изображения

Теперь применим эту логику к вашей ситуации.

Примечание. Посмотрите, как xlYes применяется, чтобы сообщить параметру XlListObjectHasHeaders в этом примере, что он должен учитывать, что мои исходные диапазоны имеют заголовки. Установите xlNo, если это не так.

person JvdV    schedule 31.01.2020
comment
Большое спасибо! Это мне очень поможет! - person Nemoko; 31.01.2020