Sub wayy() Dim arr1, arr2 Dim x, y, mrow As Long [J2:O65536].ClearContents Application.ScreenUpdating = False arr1 = Range("A2", [I65536].End(xlUp)) ReDim arr2(1 To UBound(arr1), 1 To 6) For x = 1 To UBound(arr1) If arr1(x, 8) = "子" Or arr1(x, 8) = "女" Then For y = x + 1 To UBound(arr1) If arr1(y, 9) = arr1(x, 9) Then If arr1(y, 8) = "户主" Then arr2(x, 3) = arr1(y, 2) arr2(x, 4) = arr1(y, 4) ElseIf arr1(y, 8) = "配偶" Then arr2(x, 5) = arr1(y, 2) arr2(x, 6) = arr1(y, 4) End If Else GoTo 100 End If Next 100: Else If arr1(x, 8) = "户主" Then For y = x + 1 To UBound(arr1) If arr1(y, 9) = arr1(x, 9) Then If arr1(y, 8) = "配偶" Then arr2(x, 1) = arr1(y, 2) arr2(x, 2) = arr1(y, 4) arr2(y, 1) = arr1(x, 2) arr2(y, 2) = arr1(x, 4) End If Else GoTo 200 End If Next End If 200: If arr1(x, 8) = "配偶" Then For y = x + 1 To UBound(arr1) If arr1(y, 9) = arr1(x, 9) Then If arr1(y, 8) = "户主" Then arr2(x, 1) = arr1(y, 2) arr2(x, 2) = arr1(y, 4) arr2(y, 1) = arr1(x, 2) arr2(y, 2) = arr1(x, 4) End If Else GoTo 300 End If Next End If 300: End If Next [j2].Resize(UBound(arr1), 6) = arr2 Application.ScreenUpdating = True MsgBox "OK", , "wayy" End Sub 代码写了一个,应该可以。
[此贴子已经被作者于2010-9-7 14:23:45编辑过] |