计算VBA集合中的唯一值



我有一个VBA集合,其中包含多个File项(我创建了一个名为File的类模块,具有多个属性)。我很好奇是否有一种方法可以使用For循环来迭代集合中的所有项,并做两件事:

  1. 基于我指定的File属性获取所有唯一项的列表
  2. 计算与上面列表中每个唯一值匹配的项目数

例如,假设我的集合中有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

最新更新