返回列表 上一主題 發帖

[發問] 三維陣列找最大值

本帖最後由 quickfixer 於 2018-5-20 21:32 編輯

  1. '自己把第7行的資料來源改成pr()2維陣列
  2. Sub test()
  3.     Dim findmax As Object, mx(1 To 3)
  4.     Set findmax = CreateObject("System.Collections.ArrayList")
  5.     For i = 1 To 3
  6.         For j = 1 To 30
  7.             findmax.Add Cells(i, j).Value
  8.         Next j
  9.         findmax.Sort: findmax.Reverse
  10.         mx(i) = findmax.Item(0)
  11.         findmax.Clear
  12.     Next i
  13.     MsgBox Join(mx, "_")
  14.     Set findmax = Nothing
  15. End Sub
複製代碼

TOP

本帖最後由 quickfixer 於 2018-5-24 16:42 編輯

回復 5# acdx

從01 S大,那邊學來的,他常常有一些很特别的寫法出現
sort是從小到大排序
Reverse是把排序好的,改成從大到小排序
這樣item(0)就固定是最大值
資料少還沒什麼感覺,資料多時這個方式超快
其實資料不多,可以用worksheetfunction.max代替,程式比較短,速度一樣快

TOP

        靜思自在 : 人的眼睛長在前面,只看到別人的缺點,絲毫看不到自己的缺點。
返回列表 上一主題