2016-04-04 51 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。 –