hadesqu 发表于 2016-2-29 13:48
求版主给个附件吧,我按你编码发现有问题,感谢~~~
测试时若发现有问题,你应上传测试的附件,并明确解释。
不该只丢一句话,毕竟其它朋友都是付出了时间和精力的。
我把输出放在
F列,你先试试。
Dim d
'主程序
Sub main()
Dim i, j, k, t
For i = 1 To 2
Sheets(i).Activate
Call total
k = d.keys: t = d.items
For j = 0 To UBound(k)
If t(j) > 1 Then
Select Case i
Case 1
k(j) = formatString1(k(j), t(j))
Case 2
k(j) = formatString2(k(j), t(j))
End Select
End If
Next j
k = Application.Transpose(k)
Range("
f:f").ClearContents
Range("
f1").Resize(UBound(k), 1) = k
Next i
End Sub
'求各项次数
Private Sub total()
Dim A, i, x
A = Range("a1").CurrentRegion
Set d = CreateObject("scripting.dictionary")
For i = 1 To UBound(A)
x = VBA.InStr(A(i, 1), "[")
x = IIf(x, x, Len(A(i, 1)))
x = Left(A(i, 1), x)
d(x) = d(x) + 1
Next i
End Sub
'格式化表1的字符串
Function formatString1(x, y)
Dim A, B
A = VBA.Split(x, Chr(32))
B = VBA.Split(A(1), "[")
formatString1 = A(0) & " [0:" & y - 1 & "] " & B(0) & ","
End Function
'格式化表2的字符串
Function formatString2(x, y)
Dim str$, num$
str = Mid(x, 2, InStr(x, "[") - 2)
num = "[0:" & y - 1 & "]"
formatString2 = "." & num & str & " (" & num & str & "),"
End Function
test2.rar
(12.15 KB, 下载次数: 6)