运行时间较长。
- Sub aaa()
- Dim arr, brr, i&, k&, r&
- arr = [a1].CurrentRegion
- brr = Range("h1:i" & (UBound(arr) - 1) / 2)
- For i = 2 To UBound(arr) - 1
- If arr(i, 2) <> "" Then
- For k = i + 1 To UBound(arr)
- If arr(i, 2) <> arr(k, 2) And arr(k, 2) <> "" Then If arr(i, 3) + arr(k, 3) = 7 Then Exit For
- Next k
- If k <= UBound(arr) Then
- r = r + 1
- If arr(i, 2) = "男" Then
- brr(r, 1) = arr(i, 1)
- brr(r, 2) = arr(k, 1)
- Else
- brr(r, 1) = arr(k, 1)
- brr(r, 2) = arr(i, 1)
- End If
- arr(k, 2) = ""
- End If
- End If
- Next i
- [e2].Resize(UBound(brr), 2) = brr
- MsgBox "剩余 " & UBound(arr) - 1 - r * 2 & " 人无法配对。"
- End Sub
复制代码 |