我想创建一个宏,该宏遍历工作表的所有表,并为每个表创建一个与表同名的数组,并使用表中的值填充该数组。 我从这里开始:
Dim tbl as ListObject
For Each tbl In Worksheets(Brand).ListObjects
但是我看不到如何继续以tbl.Name
作为数组名称来创建数组?有可能吗?
答案 0 :(得分:1)
将表添加到字典时,可以使用表名命名数组。
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)
答案 1 :(得分:1)
您可以使用集合:
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