Создать массив из имени таблицы Excel - PullRequest
0 голосов
/ 25 июня 2018

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

Dim tbl as ListObject
For Each tbl In Worksheets(Brand).ListObjects

Но я не вижу, как я могу приступить к созданию массива с моим tbl.Name в качестве имени массива? это возможно?

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

Вы можете использовать коллекцию:

Dim coll As New Collection
Dim ws As Worksheet
Dim lo As ListObject

For Each ws In ThisWorkbook.Worksheets
    For Each lo In ws.ListObjects
        coll.Add lo.DataBodyRange.Value, lo.Name
    Next lo
Next ws
0 голосов
/ 25 июня 2018

Использование словаря

Вы можете присвоить массиву имя таблицы при добавлении их в словарь.

Dim iDict As Object
Dim tbl As ListObject

Set iDict = CreateObject("Scripting.Dictionary")
For Each tbl In ThisWorkbook.Worksheets("Brand").ListObjects
    iDict.Add tbl.Name, tbl.DataBodyRange.Value
Next

Дополнительно вы можете получить массив как

Dim vArr() : vArr = iDict(anytablename)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...