|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
也不知道对吧。代码如下:
- Sub abey()
- Dim arr, brr, i&, j&, k&, r&, m&
- Set d = VBA.CreateObject("scripting.dictionary")
- arr = [a1].CurrentRegion
- ReDim brr(1 To UBound(arr), 1 To 8)
- brr(1, 2) = "偏高": brr(1, 3) = "高": brr(1, 4) = "偏低": brr(1, 5) = "低": brr(1, 6) = "总数(个)": brr(1, 7) = "最高数值所在区域"
- brr(2, 1) = "度": brr(2, 2) = "大于等于5": brr(2, 3) = "大于等于0小于5": brr(2, 4) = "大于-5小于0": brr(2, 5) = "小于等于-5"
- r = 2
- For i = 2 To UBound(arr)
- s = arr(i, 1)
- If Not d.exists(s) Then
- r = r + 1
- d(s) = r
- brr(r, 1) = s
- End If
- m = d(s)
- count1 = arr(i, 2)
- If count1 >= 5 Then
- brr(m, 2) = brr(m, 2) + 1
- ElseIf count1 >= 0 And count1 < 5 Then
- brr(m, 3) = brr(m, 3) + 1
- ElseIf count1 < 0 And count1 > -5 Then
- brr(m, 4) = brr(m, 4) + 1
- ElseIf count1 <= -5 Then
- brr(m, 5) = brr(m, 5) + 1
- End If
- Next i
- d.RemoveAll
- For i = 3 To UBound(brr)
- For k = 2 To 5
- brr(i, 6) = brr(i, 6) + brr(i, k)
- brr(i, 8) = WorksheetFunction.Max(brr(i, 2), brr(i, 3), brr(i, 4), brr(i, 5))
- If Not d.exists(brr(i, 1)) Then
- If brr(i, k) = brr(i, 8) Then
- d(brr(i, 1) & brr(i, 8)) = k
- brr(i, 7) = brr(1, d(brr(i, 1) & brr(i, 8)))
- End If
- End If
-
- Next k
-
-
- Next i
- [g1].Resize(r + 2, 7) = brr
- Stop
- End Sub
复制代码 |
|