VBA删除数组中的重复项

我有一个string,看起来像“苹果//苹果//橙子//”我收到一个错误“下标超出范围”,当我尝试删除重复。

我希望我的最终结果看起来像“苹果//橙子//”

Dim duplicateArray() As String Dim programsArray() As String duplicateArray() = Split(Sheets("Sheet1").Cells(1, 12).Value, "//") For j = 0 To UBound(duplicateArray) If UBound(Filter(programsArray, duplicateArray(j))) > -1 Then Else programsArray(UBound(programsArray()) + 1) = duplicateArray(j) End If Next j programElement = Join(programsArray, " // ") Sheets("Sheet1").Cells(1, 3).Value = programElement 

dynamic调整数组大小:

ReDim [保留]名称(绑定列表)

使用Preserve保存数组中存储的以前的数据

 Dim duplicateArray() As String Dim programsArray() As String duplicateArray() = Split(Sheets("Sheet1").Cells(1, 12).Value, "//") For j = 0 To UBound(duplicateArray) If UBound(Filter(programsArray, duplicateArray(j))) > -1 Then Else redim preserve programsArray(UBound(programsArray()) + 2) programsArray(UBound(programsArray()) + 1) = duplicateArray(j) End If Next j programElement = Join(programsArray, " // ") Sheets("Sheet1").Cells(1, 3).Value = programElement 

考虑:

 Sub DeDup() duplicateArray = Split(Sheets("Sheet1").Cells(1, 12).Value, "//") Dim c As Collection Set c = New Collection On Error Resume Next For Each d In duplicateArray c.Add d, CStr(d) Next d programsArray = c(1) For i = 2 To c.Count programsArray = programsArray & "//" & c(i) Next i Sheets("Sheet1").Cells(1, 3).Value = programsArray End Sub