|
dsmch 发表于 2014-4-29 22:30
建议把问题分解,逐个测试。如1-3、1-6,最后3*(1-6) - Sub Macro1()
- Dim arr, d(1 To 3), a(1 To 3)
- For h = 1 To 2 '分两次循环行
- s = 0
- For i = 1 To 115 Step 57
- s = s + 1
- Set d(s) = CreateObject("scripting.dictionary")
- arr = Cells((h - 1) * 171 + i, 1).Resize(56, 9)
- For j = 1 To UBound(arr)
- zf = Join(Application.Index(arr, j, 0), ",")
- d(s)(zf) = ""
- Next
- Next
- For i = 1 To 3
- h2 = (h - 1) * 153 + (i - 1) * 51
- a(i) = d(i).keys
- s3 = 0
- For j = 0 To d(i).Count - 1
- s2 = 0
- For k = 1 To 2
- x = (i + k - 1) Mod 3 + 1
- If d(x).exists(a(i)(j)) Then s2 = s2 + 1
- Next
- If s2 <> 2 Then
- s3 = s3 + 1
- Sheet2.Cells(h2 + s3, 1).Resize(1, 9) = Split(a(i)(j), ",")
- End If
- Next
- Next
- For i2 = 1 To 3
- d(i2).RemoveAll
- Next
- Next
- Sheet2.Activate
- [a:i] = [a:i].Value
- End Sub
复制代码 |
|