|
发表于 2017-7-31 13:45
|
显示全部楼层
本楼为最佳答案
给个VBA的吧。
- Sub aaa()
- Dim i&, k&, r&, arr, brr
- r = Application.Max([b65536].End(3), [e65536].End(3))
- ReDim arr(0 To r, 1 To 2)
- brr = [a1].CurrentRegion
- For i = 1 To UBound(brr)
- For k = brr(i, 1) To brr(i, 2)
- arr(k, 1) = 1
- Next k
- Next i
- brr = [d1].CurrentRegion
- For i = 1 To UBound(brr)
- For k = brr(i, 1) To brr(i, 2)
- arr(k, 2) = 1
- Next k
- Next i
- r = 0
- ReDim brr(1 To 1000, 1 To 2)
- For i = 0 To UBound(arr) - 1
- If arr(i, 1) = 1 And arr(i, 2) = 1 Then
- For k = i + 1 To UBound(arr)
- If arr(k, 1) <> 1 Or arr(k, 2) <> 1 Then Exit For
- Next k
- r = r + 1
- brr(r, 1) = i
- brr(r, 2) = k - 1
- i = k
- End If
- Next i
- [g1].Resize(r, 2) = brr
- End Sub
复制代码 |
|