|
我想把 If cr(i) < 25 Then 运行的结果是按次数的最小到最大的顺序向下排
Sub test()
Dim ar, br, cr, dr(1 To 1000, 1 To 1)
Dim i As Integer, j As Integer, k As Integer
Dim s As String
Dim d As Object
Dim sh As Worksheet
Set d = CreateObject("scripting.dictionary")
For Each sh In Worksheets
With sh
ar = .Range("e15:is1121")
For i = 1 To UBound(ar) Step 14
For j = 1 To UBound(ar, 2)
If ar(i, j) <> "" Then
s = ""
For k = 1 To 3
s = s & Right(10 - Mid(ar(i, j), k, 1), 1)
Next
If Len(s) = 3 Then d(s) = d(s) + 1
End If
Next
Next
End With
Next
br = d.Keys
cr = d.Items
j = 0
For i = 0 To UBound(cr)
If cr(i) < 25 Then
j = j + 1
dr(j, 1) = br(i)
End If
Next
With Sheets(1)
.Range("H1128").Resize(j, 1) = dr
End With
End Sub
自己测试下吧 - Sub test()
- Dim ar, br, cr, dr(1 To 1000, 1 To 1)
- Dim i As Integer, j As Integer, k As Integer, temp
- Dim s As String
- Dim d As Object
- Dim sh As Worksheet
- Set d = CreateObject("scripting.dictionary")
- For Each sh In Worksheets
- With sh
- ar = .Range("e15:is1121")
- For i = 1 To UBound(ar) Step 14
- For j = 1 To UBound(ar, 2)
- If ar(i, j) <> "" Then
- s = ""
- For k = 1 To 3
- s = s & Right(10 - Mid(ar(i, j), k, 1), 1)
- Next
- If Len(s) = 3 Then d(s) = d(s) + 1
- End If
- Next
- Next
- End With
- Next
- br = d.Keys
- cr = d.Items
- For i = 0 To UBound(cr) - 1 '排序
- For j = i + 1 To UBound(cr)
- If cr(i) > cr(j) Then
- temp = cr(i)
- cr(i) = cr(j)
- cr(j) = temp
- temp = br(i)
- br(i) = br(j)
- br(j) = temp
- End If
- Next
- Next
- j = 0
- For i = 0 To UBound(cr)
- If cr(i) < 25 Then
- j = j + 1
- dr(j, 1) = br(i)
- End If
- Next
- With Sheets(1)
- If j > 0 Then .Range("H1128").Resize(j, 1) = dr
- End With
- End Sub
复制代码
|
|