Вставить данные массива в столбец Listobject в EXCEL - PullRequest
0 голосов
/ 30 января 2019

Мне нужно вставить содержимое массива, содержащего текстовые значения, в столбец объекта списка.

Пока что я продолжаю в следующем порядке: псевдокод:

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.

Приветствия, и спасибо

...