【发布时间】:2018-06-13 14:38:19
【问题描述】:
是否可以在 VBA 中将集合作为 `Scripting.Dictionary' 值,然后在循环中在找到特定键时向该集合添加新值?
类似:
Dim test_dict As New Scripting.Dictionary
For Each cell In ActiveSheet.Range("S2:S13")
test_dict(cell.value).Add (cell.offset(1,0).value)
Next cell
另外,我需要考虑到键会重复的事实。
例如,在 Python 中,我可以将字典设置为将列表作为值,然后在每次迭代时附加到该列表:
dictionary= defaultdict(list)
for x in range(1,10):
dictionary[x].append(x + 100)
【问题讨论】:
-
显然 key 可以是 anything 除了数组
-
上面的集合在哪里?
-
这基本上是我的问题,我不知道如何告诉 VBA 对于这个特定的字典,键将是集合。我希望
test_dict(cell.value)成为一个集合,因此在上面的代码中使用test_dict(cell.value).Add。 -
@QHarr - '显然键可以是数组以外的任何东西' ...或重复。
-
@barciewicz - 在那种情况下,我相信集合应该是字典项,而不是键。使用 key 作为标识符,使用 item 作为实际数据。