楼主 liuguansky |
Q:如何将类型相同的坐标范围合并?达到如下说明效果: k0+000~k1+000 Ⅰ k1+000~k2+000 Ⅰ k2+000~k3+000 Ⅰ k3+000~k4+050 Ⅰ k4+050~k5+000 Ⅰ k5+000~k6+000 Ⅰ k6+000~k7+450 Ⅰ
比如这几段,,类型相同,,合并后就是k0+000~k7+450 Ⅰ
k7+450~k8+000 Ⅱ k8+000~k9+000 Ⅱ k9+000~k10+800 Ⅱ 这几段,,合并后就是k7+450~k10+800 Ⅱ
A;用如下代码可以实现:
- Sub yy()
- Dim i&, Myr&, x, Arr, Arr1, y
- Sheet1.Activate
- Myr = [c65536].End(xlUp).Row
- Arr = Range("c5:d" & Myr)
- ReDim Arr1(1 To UBound(Arr), 1 To 2)
- x = Split(Arr(1, 1), "~")
- n = n + 1
- Arr1(n, 1) = x(0): Arr1(n, 2) = Arr(1, 2)
- For i = 2 To UBound(Arr)
- y = Split(Arr(i, 1), "~")
- If Arr(i, 2) = Arr(i - 1, 2) Then
- x(1) = y(1)
- Else
- Arr1(n, 1) = Arr1(n, 1) & "~" & x(1)
- x(0) = y(0): x(1) = y(1)
- n = n + 1
- Arr1(n, 1) = x(0): Arr1(n, 2) = Arr(i, 2)
- End If
- Next
- Arr1(n, 1) = Arr1(n, 1) & "~" & y(1)
- [e5].Resize(UBound(Arr1), 2) = Arr1
- End Sub
|