返回列表 上一主題 發帖

快速比對矩陣內的資料大小!!

快速比對矩陣內的資料大小!!

想請問大家
假如有個動態矩陣,內部資料譬如
A, 1
B, 6
A, 100
C, 90
B, 99
D, 1
A, 50
......
不知道要做,才能讓VBA快速取得個別項目的最大值對應!
(100是A的最大值, 99是B的最大值)
想請問大家有沒有什麼絕招
thank you!

回復 1# yenwang
如果只要找其中一個最大值,一個迴圈加比大小就可以了
參考看看!
  1. Sub 陣列抓最大值()
  2. Dim Arr, ViewMax
  3. Arr = Range("a1:b7")  '引入你的陣列
  4. With CreateObject("Scripting.Dictionary")
  5.     For i = 1 To UBound(Arr)
  6.         If .Exists(Arr(i, 1)) Then
  7.             If .Item(Arr(i, 1)) < Arr(i, 2) Then .Item(Arr(i, 1)) = Arr(i, 2)
  8.         Else
  9.            .Add Arr(i, 1), Arr(i, 2)
  10.         End If
  11.     Next i
  12.     For Each ViewMax In .Keys
  13.         Debug.Print ViewMax, .Item(ViewMax)
  14.     Next
  15. End With
  16. End Sub
複製代碼

TOP

Sub AR1017()
Dim Arr, xD, j&, T, V
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([A1], [B65536].End(xlUp))
For j = 1 To UBound(Arr)
  T = Arr(j, 1): V = Arr(j, 2)
  If xD(T) = "" Then xD(T) = V
  If V > xD(T) Then xD(T) = V
Next j
[E1:F1].Resize(xD.Count) = Application.Transpose(Array(xD.keys, xD.items))
End Sub

TOP

http://blog.xuite.net/hcm19522/twblog/350193923

TOP

        靜思自在 : 人要自愛,才能愛普天下的人。
返回列表 上一主題