2016-04-04 48 views
-1

我有一个包含多个文件项目的VBA集合(我创建了一个名为具有多个属性的文件的类模块)。我很好奇,如果有使用For遍历集合中的所有项目进行迭代,做两件事情的方式:计算VBA集合中的唯一值

  1. 找我指定
  2. 的基于文件属性的所有独特的物品清单
  3. 计数从上面的列表

例如匹配的每个唯一值的项目的数量,让我们说,我有我的收藏4分文件的项目:

  • 文件1(File1.Pattern = “试验* .XLSX”)
  • 文件2(File2.Pattern = “试验* .XLSX”)
  • 文件3(File3.Pattern = “试验* .TXT”)
  • FILE4(File4.Pattern =“测试*的.csv“)

输出我希望将是(理想的阵列或单独收集):

  • 试验* .XLSX(2)
  • 试验* .TXT(1)
  • 测试* .csv(1)

有关如何实现类似这样的任何想法?

+0

声明变量每个模式然后增加他们每场比赛通过循环? – findwindow

+0

如果您事先不知道@findwindow有哪些模式? – GSerg

+0

@GSerg说什么。可以有无数的模式。 –

回答

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 
+0

非常感谢Tim。 –