Sub kln() Dim arr(1 To 3, 0 To 9) For a1 = 0 To 9 arr(1, a1) = a1 arr(2, a1) = a1 arr(3, a1) = a1 Next For i = 1 To [a65536].End(xlUp).Row arr(1, Mid(Cells(i, 1), 1, 1)) = arr(1, Mid(Cells(i, 1), 1, 1)) + 10 arr(2, Mid(Cells(i, 1), 2, 1)) = arr(2, Mid(Cells(i, 1), 2, 1)) + 10 arr(3, Mid(Cells(i, 1), 3, 1)) = arr(3, Mid(Cells(i, 1), 3, 1)) + 10 Next Cells(1, 3).Resize(3, 10) = arr For a2 = 1 To 3 Set aa = Cells(a2, 3).Resize(1, 10) aa.Sort Key1:=Cells(a2, 3), Order1:=xlDescending, Header:=xlGuess _ , OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _ SortMethod:=xlStroke, DataOption1:=xlSortNormal For Each a In aa 'a.Value = Left(a, 1) a.Value = Right(a, 1) Next Next End Sub 你这个不就是想统计每个数字出现的频率的顺序么 所以我认为你的那个left 应该是 right |