删除集合中的重复项并放入数组中

时间:2015-04-03 09:02:13

标签: excel excel-vba excel-2010 spreadsheet vba

我有一系列申请人。该系列包括姓名,大学,年龄,日期等。

我想创建一个只包含Applicants集合中唯一名称的数组。

我想以某种方式创建一个使用Names作为键的新词典,因为键不能重复:

Dim z As Variant
Dim d As Object

Set d = CreateObject("Scripting.Dictionary")

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

但我不知道这是否有效,因为我遇到了错误。我想在之后创建一个数组,在这种情况下将保存唯一键或名称。

1 个答案:

答案 0 :(得分: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信息来证明您的样本使用的内容。 .ItemSplit。可以使用键检索,分隔符上的{{1}}函数将创建一个数组。