Существует ли эффективный способ хранения заголовков таблиц в коллекции VBA? - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь сохранить каждое из значений заголовка таблицы в Collection. Код, который я использую, делает именно это, но, похоже, мой Collection дублирует элементы. Я считаю, что это связано с тем, как я добавляю значения заголовка в мой Collection. Я сталкиваюсь с

Ошибка выполнения 13

при попытке извлечь Collection элементов в For Each l oop

Код

Public Property Get TmProducts() As Collection
    Set TmProducts = this.TmProducts
    TmProducts.Add TmTable.ListObjects("Table1").HeaderRowRange.value
End Property

Снимок экрана

enter image description here

1 Ответ

1 голос
/ 22 февраля 2020

Это потому, что вы присваиваете массив значений заголовков первому элементу в вашей коллекции. Таким образом, вам потребуется l oop для каждого элемента в вашем массиве следующим образом ...

Dim item As Variant
For Each item In TmProducts(1)
    Debug.Print item
Next item

Однако, поскольку вы, вероятно, захотите назначить каждое значение заголовка отдельному элементу в вашей коллекции, вам нужно будет назначить их следующим образом ...

Dim currentCell As Range
For Each currentCell In TmTable.ListObjects("Table1").HeaderRowRange
    TmProducts.Add currentCell.Value
Next currentCell

Затем вы сможете получить доступ к элементам вашей коллекции следующим образом ...

Dim item As Variant
For Each item In TmProducts
    Debug.Print item
Next item
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...