2015-04-03 98 views
0

我有一批申請人。該集合包含名稱,大學,年齡,日期等。刪除集合中的重複項並將其存入數組

我想創建一個只包含來自Applicants集合的唯一名稱的數組。

我想以某種方式創建一個使用該名稱作爲密鑰的新字典,因爲密鑰不能重複:

Dim z As Variant 
Dim d As Object 

Set d = CreateObject("Scripting.Dictionary") 

For Each z In Applicants 
    d(z("Names")) = 1 
Next 

但是我不知道這是否會工作,因爲我遇到了錯誤。之後我想創建一個數組來保存唯一鍵或名稱。

+0

是否要創建一個唯一名稱或唯一名稱字典的數組?你的問題並不清楚。 – 2015-04-03 10:33:38

+0

聽起來就像你想創建一個字典來獲取唯一的名字,然後將該字典傳送到一個數組,是否正確?此外,指出您獲得的錯誤以及調試器指示錯誤的代碼位置會很有幫助。 – FreeMan 2015-04-03 12:55:44

回答

0

您需要在添加之前測試密鑰是否存在,否則將引發錯誤。此外,您可以使用Scripting.Dictionary中的非唯一.Item來存儲來自同一記錄的單個或分隔字段。

For Each z In Applicants 
    if not d.exists(z("Names")) then 
     d.Add Key:=z("Names"), Item:=z("University") & "|" & z("Age") & "|" & z("Date") 
    end if 
Next 

我不知道z("Names")但您沒有提供足夠的信息來Applicants證明比你的樣品,使用的是什麼了。 .Item。可以使用密鑰進行檢索,分隔符上的Split函數將創建一個數組。