Мне нужно вставить содержимое массива, содержащего текстовые значения, в столбец объекта списка.
Пока что я продолжаю в следующем порядке: псевдокод:
a) deleteсодержимое столбца
б) добавление строки в ListObject и добавление последнего значения массива
в) шаг цикла b
Dim ftsTbl As ListObject
Set ftsTbl = ThisWorkbook.Sheets("rawcls").ListObjects(1)
Dim myArr() As String
‘****code to “fill in myArr()
‘the column of the ListObject to insert data is named “texts”
ftsTbl.ListColumns("texts").DataBodyRange.ClearContents
ftsTbl.DataBodyRange.Interior.ColorIndex = xlNone
решение 1, котороене работает:
ftsTbl.ListColumns("texts").DataBodyRange = myArr
решение 2, которое не работает удовлетворительно
For i = uBound(myArr) To LBound(myArr) Step -1
ftsTbl.ListRows.Add alwaysinsert:=True
ftsTbl.ListColumns("texts").DataBodyRange.iTem(1).Value = myArr(i)
Next i
идея в решении 2 - всегда вставлять в первую ячейку столбца «тексты» и добавлять новыйстрока в позиции 1 и, следовательно, «толкает» вниз на другие строкиЭто решение не работает.
Я думаю, что должен быть более прямой путь, поскольку заполнение объекта ListObject данными массива должно быть очень распространенным делом.
Я обратился к нескольким вопросамв stackoverflow: Вставка массива значений в ListObject (таблица Excel) уничтожает объект Listobject
или этот (мой собственный) Вставка данных - диапазоны объектов Listobject в другихListobject of Excel
или этот https://chandoo.org/wp/using-arrays-to-update-table-columns/
Но ни один из этих вопросов не касается заполненной массивом части ListObject.
Приветствия, и спасибо