dim aaaaaa = Array("aaa","bbb","ccc","ddd","aaa","aaa","aaa","aaa","aaa")请问怎么获得这个aaa数组里面有多少个不重复的元素呢?
谢谢大家了,我搞了一个下午了~~~

解决方案 »

  1.   

    Dim aaa
    Dim b()
    aaa = Array("aaa", "bbb", "ccc", "ddd", "aaa", "aaa", "aaa", "aaa", "aaa")
    Dim s
    Dim I
    Dim gs = Join(aaa, "||")
    For Each g In aaa
        If Len(Replace(s, g, "")) = Len(s) - Len(g) Then
            ReDim b(I)
            b(I) = g
            I = I + 1
        End If
    Next
      

  2.   

    楼上的那个gg的不行啊,可以找到单独出现的比如bbb,ccc,ddd,可是找不到aaa,把aaa忽略掉了,怎么才能把aaa也计算上呢?但是只要计算一次即可
      

  3.   

    Sub test()
    Dim aaa
    aaa = Array("aaa", "bbb", "ccc", "ddd", "aaa", "aaa", "aaa", "aaa", "aaa")Dim a As String
    Dim b() As String
    Dim Cnt As Integer
    Dim Sum As Double
    Dim i, j As Integer
    a = Join(aaa, ",")
    b = Split(a, ",")
    Sum = 0
    For i = 0 To UBound(b)
        Cnt = 0
        For j = 0 To UBound(b)
            If b(i) = b(j) Then
                Cnt = Cnt + 1
            End If
        Next j
        Sum = 1 / Cnt + Sum
    Next i
    End Sub
      

  4.   

    Sum最终结果是4
    我理解的是"aaa"也要算一次。如果"aaa"属于重复元素而不予计算的话,chuifengde(树上的鸟儿)的方法不错