我有一个代码,它从文件的一列中获取数据,并将其放入数组中。

现在,我想遍历此数组并删除重复项,但是我无法通过...任何想法?

这是代码,数组在末尾:

Dim i As Long
Dim searchItem As Variant
strSearch = ""
searchItem = ""
strFile = "...\Desktop\xl files min\src.xlsm"
Set s_wbk = Workbooks.Open(strFile)
With s_wbk.Worksheets("Sheet1")
    For i = 1 To Rows.Count
        If Not IsEmpty(Cells(i, 1).Value) Then
           strSearch = strSearch & "," & Cells(i, 1).Value
        End If
    Next i
End With
s_wbk.Close
searchItem = Split(strSearch, ",") '*NEED TO REMOVE DUPLICATES

最佳答案

通过使用InStr function测试先前是否存在,来删除字符串构造过程中的重复项。

    If Not IsEmpty(Cells(i, 1).Value) And _
      Not InStr(1, strSearch, Cells(i, 1).Value & ",", vbTextCompare) Then
       strSearch = strSearch & "," & Cells(i, 1).Value
    End If


分割之前,您还应该删除最后一个逗号。

Next i
strSearch = Left(strSearch, Len(strSearch) - 1)


最后,如果您将值添加到Scripting.Dictionary对象(带有其自己的唯一主键索引)中,则在已为您构建的数组中将有一组唯一的键。

09-16 00:10