我有一个VBA集合,其中包含多个File项(我创建了一个名为File的类模块,具有多个属性)。我很好奇是否有一种方法可以使用For
循环来迭代集合中的所有项,并做两件事:
- 基于我指定的File属性获取所有唯一项的列表
- 计算与上面列表中每个唯一值匹配的项目数
例如,假设我的集合中有4个文件项:
- File1(File1.Pattern="Test*.xlsx")
- File2(File2.Pattern="Test*.xlsx")
- File3(File3.Pattern="Test*.txt")
- File4(File4.Pattern="Test*.csv")
我想要的输出是(理想情况下是一个数组或单独的集合):
- 测试*.xlsx(2)
- 测试*.txt(1)
- 测试*.csv(1)
有没有想过我该如何实现这样的东西?
只要你不需要在Mac上这样做:
Dim d, f, k
Set d = CreateObject("scripting.dictionary")
For Each f in myFiles
d(f.Pattern) = d(f.Pattern)+1
Next f
For Each k in d
Debug.Print k, d(k)
Next k