Excel VBA删除阵列中的重复项
我有一个字符串,看起来像“apples//apples//oranges//”。当我试图删除重复项时,我得到一个错误“下标超出范围” 我希望我的最终结果看起来像“苹果/橘子/”Excel VBA删除阵列中的重复项,excel,vba,Excel,Vba,我有一个字符串,看起来像“apples//apples//oranges//”。当我试图删除重复项时,我得到一个错误“下标超出范围” 我希望我的最终结果看起来像“苹果/橘子/” 要动态调整数组大小,请执行以下操作: 重拨[保留]名称(边界列表) 使用“保留”保留存储在数组中的以前的数据 Dim duplicateArray() As String Dim programsArray() As String duplicateArray() = Split(Sheets("Sheet1").Ce
要动态调整数组大小,请执行以下操作: 重拨[保留]名称(边界列表) 使用“保留”保留存储在数组中的以前的数据
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
索引的值是什么?您在哪里定义
programsArray
大小?对不起,它应该是Sheets(“Sheet1”)。单元格(1,3)。value=programmelementprogramsArray
未填充在此代码示例中。我希望programsArray通过动态数组填充。您如何定义它,以便我可以向其中添加新文本?我仍然收到错误“下标超出范围”,它似乎来自“If UBound(Filter(programsArray,duplicateArray(j))>-1 Then”
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