2015-04-03 109 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函数将创建一个数组。