【发布时间】:2020-02-23 16:52:23
【问题描述】:
我需要从数组中删除反向重复。
从1,2 和2,1 我想删除2,1,因为它的反向是1,2 的重复。
Sub go()
Dim arr() As String
ReDim Preserve arr(0)
Dim i, k As Integer
For i = 1 To 2
For k = 1 To 10
If i <> k Then
arr(UBound(arr)) = i & "," & k
ReDim Preserve arr(UBound(arr) + 1)
End If
Next
Next
'Debug.Print Join(arr, vbCrLf)
For z = 0 To UBound(arr)
For q = 0 To UBound(arr)
rev = StrReverse(arr(z))
If arr(q) = rev Then
Debug.Print arr(z) & "-" & rev
End If
Next
Next
End Sub
【问题讨论】:
-
你能解释一下你的问题是什么,或者这怎么行不通?
-
我不知道如何从 arr() 数组中删除 2,1 重复项。
-
也许只是将它复制到一个新数组中?您不想更改您在循环中迭代的数组。
-
添加到@Jeremy 评论,你可以有一个循环来遍历你的数组。在循环中有一个集合。检查您当前的项目是否存在于集合中,如果不存在,则添加到集合和新数组中
-
不相关,但以下行很可能与您认为的不同:
Dim i, k As Integer。您实际上在这里声明的是Dim i As Variant, k As Integer。 VB6 和 VBA 不支持在 one 语句中将多个变量声明为某种数据类型。如果要将两者都声明为Integer,则声明需要类似于Dim i As Integer, k As Integer。
标签: excel vba duplicates reverse