- Sub ykcbf() '//2025.4.7
- Application.ScreenUpdating = False
- Set d = CreateObject("Scripting.Dictionary")
- With ActiveSheet
- r = .Cells(Rows.Count, 3).End(xlUp).Row
- arr = .Range("c10:d" & r)
- rq1 = .[c8].Value
- rq2 = .[d8].Value
- For i = 2 To UBound(arr)
- If arr(i, 1) >= rq1 And arr(i, 1) <= rq2 Then
- s = Trim(arr(i, 2))
- d(s) = d(s) + 1
- End If
- Next i
- ReDim brr(1 To d.Count, 1 To 2)
- For Each k In d.Keys
- m = m + 1
- brr(m, 1) = k
- brr(m, 2) = d(k)
- Next k
- For i = LBound(brr, 1) To UBound(brr, 1)
- For j = i + 1 To UBound(brr, 1)
- If brr(j, 2) > brr(i, 2) Then
- temp = brr(i, 1)
- brr(i, 1) = brr(j, 1)
- brr(j, 1) = temp
- temp = brr(i, 2)
- brr(i, 2) = brr(j, 2)
- brr(j, 2) = temp
- End If
- Next j
- Next i
- top1 = brr(1, 1)
- count1 = brr(1, 2)
- If UBound(brr, 2) >= 1 Then
- hasSecond = True
- top2 = brr(2, 1)
- count2 = brr(2, 2)
- Else
- hasSecond = False
- End If
- .[f9] = top1
- .[h9] = top2
- End With
- Set d = Nothing
- Application.ScreenUpdating = True
- MsgBox "OK!"
- End Sub
复制代码
|