Excel: написать весь столбец ListObject - PullRequest
0 голосов
/ 22 февраля 2019

Как я могу просто записать значения из массива во весь столбец ListObject сразу (только строки данных, исключая заголовок)?Я нашел решение, но не думаю, что оно симпатичное:

' needs: ActiveSheet with ListObject "Tabelle1",
' with second column heading "Spalte2" and 4 data rows
Sub WriteLoColumnTest()
    Dim lo As ListObject
    Set lo = ActiveSheet.ListObjects("Tabelle1")

    Dim va(1 To 4, 1 To 1) As Variant
    va(1, 1) = "a"
    va(2, 1) = "b"
    va(3, 1) = "c"
    va(4, 1) = "d"

    ' here it comes:
    lo.ListColumns("Spalte2") _
        .Range _
        .Resize(lo.ListRows.Count) _
        .Offset(1) _
        .Value2 = va
End Sub

Мне нужно .ListColumns и .Range, чтобы получить мой диапазон, и .Resize и .Offset, чтобы пропустить строку заголовков.Есть ли более простой способ?

1 Ответ

0 голосов
/ 22 февраля 2019

Если вы просто ищете более простой способ сделать это, вы можете достичь того же, используя ниже

Sub WriteLoColumnTest()
    Dim lo As ListObject: Set lo = ActiveSheet.ListObjects("Tabelle1")
    Dim va As Variant

    va = Array("a", "b", "c", "d")
    lo.ListColumns("Spalte2").DataBodyRange.Value2 = Application.Transpose(va)
End Sub

Для дальнейшего чтения вы можете ознакомиться с различными частями объекта списка

https://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables

...