Как сказано в комментариях, самый простой способ сделать это - иметь новый массив и добавлять к нему элементы. Также, как сказал Хель О'Вин, переменные VBA нуждаются в явных объявлениях, как у меня ниже.
Public Sub goTest()
Dim inputArray() As String
ReDim Preserve inputArray(0)
Dim resultArray() As String
ReDim Preserve resultArray(0)
Dim i As Long, j As Long
Dim rev As String, notDuped As Boolean
'[[-- Loop to generate the test array
For i = 1 To 2
For j = 1 To 10
If i <> j Then
inputArray(UBound(inputArray)) = i & "," & j
ReDim Preserve inputArray(UBound(inputArray) + 1)
End If
Next j
Next i
'--]]
'The actual reverse removed code
For i = 0 To UBound(inputArray)
rev = StrReverse(inputArray(i))
notDuped = True
For j = 0 To i 'Only loop up to the current point, not all of the array
If inputArray(j) = rev Then
notDuped = False
Exit For
End If
Next j
If notDuped Then 'If no reverse found add to new array
resultArray(UBound(resultArray)) = inputArray(i)
ReDim Preserve resultArray(UBound(resultArray) + 1)
End If
Next i
'[[-- To check that it worked
For i = 0 To UBound(resultArray)
Debug.Print (resultArray(i))
Next i
'--]]
End Sub
В нижней части кода просто выводится результирующий массив, так что вы можете видеть, что он не имеет обращений, он не имеет никакого отношенияна код работает правильно.
Если у вас есть какие-либо проблемы с этим, просто оставьте мне комментарий, и я свяжусь с вами.