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
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
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
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
我理解的是"aaa"也要算一次。如果"aaa"属于重复元素而不予计算的话,chuifengde(树上的鸟儿)的方法不错