|
- Sub 林demo()
- Dim d As New Dictionary, h As Long, j As Long, arr, brr, crr(), k As Long
- brr = Array("研究生", "本科", "专科")
- With Sheet1
- h = .UsedRange.Rows.Count
- arr = .Range("a2:d" & h)
- For i = 1 To UBound(arr)
- If d.exists(arr(i, 1)) Then
- If d(arr(i, 1)) = "研究生" Then
- ElseIf d(arr(i, 1)) = "本科" Then
- If arr(i, 3) = "研究生" Then d(arr(i, 1)) = "研究生"
- ElseIf d(arr(i, 1)) = "专科" Then
- If arr(i, 3) = "研究生" Then d(arr(i, 1)) = "研究生"
- If arr(i, 3) = "本科" Then d(arr(i, 1)) = "本科"
- End If
- Else
- d(arr(i, 1)) = arr(i, 3)
- End If
- Next
- For i = 1 To d.Count
- ReDim Preserve crr(1 To 4, 1 To i)
- crr(1, i) = d.keys(i - 1)
- For j = 1 To UBound(arr)
- If arr(j, 1) & arr(j, 3) = d.keys(i - 1) & d.items(i - 1) Then
- crr(2, i) = arr(j, 2)
- crr(4, i) = arr(j, 4)
- Exit For
- End If
- Next j
- crr(3, i) = d.items(i - 1)
- Next
- End With
- Sheet2.Range("a2:d65535").ClearContents
- Sheet2.Range("a2").Resize(d.Count, 4) = Application.Transpose(crr)
- End Sub
复制代码 大致逻辑是用字典去重
|
|