- Sub 按钮1_Click()
- Set d = CreateObject("scripting.dictionary")
- brr = [h3].CurrentRegion.Offset(1)
- crr = [a3].CurrentRegion
- arr = [h3].Resize(UBound(brr) + UBound(crr), UBound(brr, 2))
- For j = 2 To UBound(crr)
- d(crr(j, 1)) = d(crr(j, 1)) & "," & j
- d(crr(j, 1) & crr(j, 2)) = j
- Next j
- r = 2
- For j = 1 To UBound(brr) - 1
- If Not d.exists(brr(j, 1) & brr(j, 2)) Then
- If brr(j, 1) <> brr(j + 1, 1) Then
- For i = 1 To UBound(brr, 2) - 1
- arr(r, i) = brr(j, i)
- Next i
- arr(r, i) = r - 2
- r = r + 1
- xrr = Split(d(brr(j, 1)), ",")
- For x = 1 To UBound(xrr)
- For i = 1 To UBound(crr, 2)
- arr(r, i) = crr(Val(xrr(x)), i)
- Next i
- arr(r, 5) = r - 2
- r = r + 1
- Next x
- If d.exists(brr(j, 1)) Then d.Remove brr(j, 1)
- Else
- For i = 1 To UBound(brr, 2)
- arr(r, i) = brr(j, i)
- Next i
- r = r + 1
-
- End If
-
- End If
- Next j
- For j = 0 To d.Count - 1
- If Len(d.keys()(j)) = 4 Then
- xrr = Split(d.items()(j), ",")
- For x = 1 To UBound(xrr)
- For i = 1 To UBound(crr, 2)
- arr(r, i) = crr(Val(xrr(x)), i)
- Next i
- arr(r, 5) = r - 2
- r = r + 1
- Next x
- End If
- Next j
- d.RemoveAll
- For j = 2 To r - 1
- d(arr(j, 1)) = 1 + d(arr(j, 1))
- arr(j, UBound(arr, 2)) = d(arr(j, 1)) - 1
- Next j
- [t3].Resize(r - 1, UBound(arr, 2)) = arr
- End Sub
复制代码 |