Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Function ArrayUnique(ByVal aArrayIn As Variant) As Variant
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- ' ArrayUnique
- ' This function removes duplicated values from a single dimension array
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- Dim aArrayOut() As Variant
- Dim bFlag As Boolean
- Dim vIn As Variant
- Dim vOut As Variant
- Dim i%, j%, k%
- ReDim aArrayOut(LBound(aArrayIn) To UBound(aArrayIn))
- i = LBound(aArrayIn)
- j = i
- For Each vIn In aArrayIn
- For k = j To i - 1
- If vIn = aArrayOut(k) Then bFlag = True: Exit For
- Next
- If Not bFlag Then aArrayOut(i) = vIn: i = i + 1
- bFlag = False
- Next
- If i <> UBound(aArrayIn) Then ReDim Preserve aArrayOut(LBound(aArrayIn) To i - 1)
- ArrayUnique = aArrayOut
- End Function
- Sub test()
- Dim arm(11, 1) As Variant
- Dim tempar() As Variant
- ReDim tempar(0 To UBound(arm, 1), 0 To UBound(arm, 2)) As Variant
- arm(0, 0) = "banana"
- arm(1, 0) = "banana"
- arm(2, 0) = "banana"
- arm(3, 0) = "apple"
- arm(4, 0) = "apple"
- arm(5, 0) = "banana"
- arm(6, 0) = "cucumber"
- arm(7, 0) = "cucumber"
- arm(8, 0) = "cucumber"
- arm(9, 0) = "apple"
- arm(10, 0) = "cucumber"
- arm(11, 0) = "a"
- arm(0, 1) = 5
- arm(1, 1) = 4
- arm(2, 1) = 3
- arm(3, 1) = 2
- arm(4, 1) = 5
- arm(5, 1) = 3
- arm(6, 1) = 2
- arm(7, 1) = 4
- arm(8, 1) = 5
- arm(9, 1) = 1
- arm(10, 1) = 1
- arm(11, 1) = 3
- tempar() = unqfiladv(arm)
- End Sub
- Function unqfiladv(ByVal aArIn As Variant) As Variant
- Dim aArOut() As Variant
- Dim vexFlag As Boolean
- Dim vIn As Variant
- Dim i%, j%, k%
- ReDim aArOut(LBound(aArIn, 1) To UBound(aArIn, 1), LBound(aArIn, 2) To UBound(aArIn, 2))
- i = LBound(aArIn, 1)
- j = i
- For Each vIn In aArIn
- For k = j To i - 1
- If vIn = aArOut(k, 0) Then vexFlag = True: Exit For
- Next k
- If Not vexFlag Then
- aArOut(i, 0) = vIn
- 'aArOut(i, 1) = ?
- i = i + 1
- vexFlag = False
- End If
- Next
- If i <> UBound(aArIn, 1) Then ReDim Preserve aArOut(LBound(aArIn, 1) To i - 1)
- unqfiladv = aArOut
- End Function
Add Comment
Please, Sign In to add comment