Как добавить строку в таблицу? - PullRequest
1 голос
/ 31 января 2020

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

Что я пробовал
, потому что у меня есть 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

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

1 Ответ

1 голос
/ 31 января 2020

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

enter image description here

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

enter image description here

Теперь примените это logi c в вашей ситуации.

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

...