建一个CommandButton,把以下代码复制进去即可
Private Sub CommandButton1_Click()
For i = 1 To 20
Temp = Application.WorksheetFunction.Substitute(Range("a" & i), ".", "")
For j = 0 To 9
Pos1 = 0
Pos2 = 0
'if判断,同一个单元格中某个数字出现两次,且只出现两次
If Len(Temp) - Len(Application.WorksheetFunction.Substitute(Temp, j, "")) = 2 Then
Pos1 = InStr(Temp, j) + 1
Pos2 = InStr(Pos1, Temp, j)
LenTemp = Mid(Temp, Pos1, Pos2 - Pos1)
n = 0
'符合以上IF条件后,计算把中间的数去重后的个数
For k = 0 To 9
If InStr(LenTemp, k) > 0 Then n = n + 1
Next k
'去重后数字个数等于4则符合要求,并记录在C列
If n = 4 Then
Range("c" & i) = Range("a" & i)
Exit For
End If
End If
Next j
Next i
'把C列符合要求的数字移到B列指定位置
Range("c1:c20").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp
Range("c1:c20").Copy Range("b" & 21 - Application.WorksheetFunction.Count(Range("c1:c20")))
Range("c1:c20").Clear
End Sub
太简单了,小数点算位吗?出现三次及以上的怎么处理?