|
发表于 2017-4-20 20:45
|
显示全部楼层
本楼为最佳答案
- Sub aaa()
- Dim i&, s$, s1$, j&, rng As Range, d As Object, n&, brr(1 To 1000, 1 To 6), r1&, r2, c
- Set d = CreateObject("scripting.dictionary")
- For Each rng In Selection
- If rng.Interior.Color = vbRed Then d(rng.Offset(1).Value) = ""
- Next rng
- For i = 0 To 999
- s = Format(i, "000")
- s1 = Join(d.keys, "")
- For j = 1 To 3
- If InStr(s1, Mid(s, j, 1)) Then n = n + 1
- If n = 2 Then Exit For
- Next j
- If n = 2 Then
- r = r + 1
- For j = 1 To 3
- brr(r, j) = Mid(s, j, 1)
- Next j
- Else
- r1 = r1 + 1
- For j = 4 To 6
- brr(r1, j) = Mid(s, j - 3, 1)
- Next j
- End If
- n = 0
- Next i
- [k30] = d.Count
- [k32].Resize(d.Count) = Application.Transpose(d.keys)
- [n30].Resize(1000, 6) = brr
- End Sub
复制代码 |
|