|
发表于 2015-4-14 14:58
|
显示全部楼层
本楼为最佳答案
只在原代码上改了- Sub Macro1()
- On Error Resume Next
- Dim arr, brr, d, i&, s&, x&
- Set d = CreateObject("scripting.dictionary")
- arr = Sheet1.Range("a1").CurrentRegion
- brr = Range("a6:g" & Range("a65536").End(xlUp).Row)
- For i = 1 To UBound(brr)
- d(brr(i, 1)) = i
- Next
- For i = 3 To UBound(arr)
- x = d(arr(i, 7) & arr(i, 8) & arr(i, 9))
- y = d(arr(i, 7) & arr(i, 8))
- Z = d(arr(i, 7))
-
- brr(x, 2) = brr(x, 2) + arr(i, 2)
- brr(x, 3) = brr(x, 3) + arr(i, 4)
- brr(y, 2) = brr(y, 2) + arr(i, 2)
- brr(y, 3) = brr(y, 3) + arr(i, 4)
- brr(Z, 2) = brr(Z, 2) + arr(i, 2)
- brr(Z, 3) = brr(Z, 3) + arr(i, 4)
-
- If arr(i, 3) = "女" Then
- brr(x, 4) = brr(x, 4) + arr(i, 2)
- brr(x, 5) = brr(x, 5) + arr(i, 4)
- brr(y, 4) = brr(y, 4) + arr(i, 2)
- brr(y, 5) = brr(y, 5) + arr(i, 4)
- brr(Z, 4) = brr(Z, 4) + arr(i, 2)
- brr(Z, 5) = brr(Z, 5) + arr(i, 4)
- Else
- brr(x, 6) = brr(x, 6) + arr(i, 2)
- brr(x, 7) = brr(x, 7) + arr(i, 4)
- brr(y, 6) = brr(y, 6) + arr(i, 2)
- brr(y, 7) = brr(y, 7) + arr(i, 4)
- brr(Z, 6) = brr(Z, 6) + arr(i, 2)
- brr(Z, 7) = brr(Z, 7) + arr(i, 4)
- End If
- Next
- [a6].Resize(UBound(brr), UBound(brr, 2)) = brr
- End Sub
复制代码 |
|