|
发表于 2012-3-31 14:41
|
显示全部楼层
本楼为最佳答案
1testvba 发表于 2012-3-31 12:01
liuguansky 老师好。、。
出现次数为0的。就是 0-9 10个数 未出现的 数字。 - Sub justtest()
- Dim S$, Pa$, Sd$, Ar(1 To 3), j As Byte, ArS(1 To 6, 1 To 1)
- Dim d(1 To 3) As New Dictionary, K&, M$, A
- For j = 1 To 3
- Ar(j) = Mid([b1], j, 1)
- Next j
- Pa = ThisWorkbook.Path & "\test.txt"
- Open Pa For Input As #1
- K = 0
- Do Until EOF(1)
- Line Input #1, Sd
- K = K + 1
- Sd = Split(Sd)(1)
- For j = 1 To 3
- M = Mid(Sd, Ar(j), 1)
- d(3)(M) = d(3)(M) + 1
- If K Mod 2 = 1 Then
- d(1)(M) = d(1)(M) + 1
- Else
- d(2)(M) = d(2)(M) + 1
- End If
- Next j
- Loop
- Close #1
- ArS(1, 1) = "奇数行": ArS(3, 1) = "偶数行": ArS(5, 1) = "总排序"
- ArS(2, 1) = SA(d(1)): ArS(4, 1) = SA(d(2)): ArS(6, 1) = SA(d(3))
- [a1:a6] = ArS
- Erase d
- MsgBox "处理完毕!"
- End Sub
- Function SA(d As Dictionary) As String
- Dim A1, A2, i&, j&, C
- For i = 0 To 9
- If Not d.Exists(i & "") Then
- d.Add i & "", 0
- End If
- Next i
- A1 = d.Keys: A2 = d.Items
- For i = 0 To UBound(A1) - 1
- For j = i + 1 To UBound(A1)
- If A2(i) < A2(j) Then
- C = A1(i): A1(i) = A1(j): A1(j) = C
- C = A2(i): A2(i) = A2(j): A2(j) = C
- End If
- Next j, i
- For i = 0 To UBound(A1)
- SA = SA & " " & A1(i) & "[" & A2(i) & "]"
- Next i
- SA = Mid(SA, 2)
- End Function
复制代码
|
|