源数据
源数据要求:
求A—L列每一行中数字计数为3的数字,并将这些数字连接起来,放在M列;例如:M1的结果就是从A1到L1所出现的数字中找,0出现了4次 ,1出现了4次 ,2出现了4次...9出现了3次(只显示出现3次的数字)
Sub 数字3()
Dim arr, s$, ss$, i%, j%, k%, m%
arr = Range("a1:L" & [a65535].End(3).Row) '将数据放到数组arr
For i = 1 To UBound(arr) '遍历数组
For j = 1 To UBound(arr, 2)
s = s & arr(i, j) '将数组每一行连接起来,生成一个数字字符串,返回给s
Next
For m = 0 To 9 '数字只有10个,0-9
'将0-9的数字,在字符串中分别替换为空,替换前后的字符数之差,就是该数字的个数
k = Len(s) - Len(Replace(s, m, ""))
If k = 3 Then ss = ss & m '如果数字的个数等于3,就连接起来,返回给字ss
Next
Cells(i, "m") = ss '将结果输出到单元格
s = "": ss = "" '清空字符串s和ss
Next
End Sub
结果
示例文件下载:
链接: http://pan.baidu.com/s/1c2hD7UC 密码: irys
网友评论