我想找一個範圍內最大值,並找到所對應橫列/縱列的值
如範例中最大值為18.66423, 對應衡列值為400, 縱列值為25, 我的程式如下
Col = Range("B15").End(xlToRight).Column
Rw = Range("B15").End(xlDown).Row
Range("H11") = Application.Max(Range(Cells(16, 2), Cells(Rw, Col)))
For j = 16 To Rw
For k = 2 To Col
MAXV = Range("H11").Value
If Cells(j, k) = MAXV Then
Range("I11") = Cells(j, 1).Value
Range("J11") = Cells(15, k).Value
GoTo 5
End If
Next k
Next j
Msgbox (MAXV, Range("I11"), Range("J11"))
我利用loop去找對應最大值的橫/縱列值, 但是當這個範圍非常大時,可能是1500*1500的陣列, 執行時間則會變長, 是否有其他更有效率方法可以做?
[attach]30117[/attach]作者: stillfish00 時間: 2019-2-21 17:29
先試試~~
Sub TEST()
Dim R&, C&, Mx, xF As Range
R = Cells(Rows.Count, 1).End(xlUp).Row
C = Cells(15, Columns.Count).End(xlToLeft).Column
With Range([B16], Cells(R, C))
Mx = Application.Max(.Cells)
Set xF = .Find(Mx, Lookat:=xlWhole)
Range("I11") = Cells(xF.Row, 1).Value
Range("J11") = Cells(15, xF.Column).Value
End With
End Sub作者: Hsieh 時間: 2019-2-22 16:48