计算VBA集合中的唯一值

时间:2016-04-04 19:45:56

标签: excel excel-vba vba

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

  1. 根据我指定的文件属性
  2. 获取所有唯一项的列表
  3. 计算与上面列表中每个唯一值匹配的项目数
  4. 例如,假设我的收藏中有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)

    关于如何实现这样的事情的任何想法?

1 个答案:

答案 0 :(得分:3)

只要您不需要在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