Excel里面怎么用VBA找出特定几行的最大值?

有一列数据,有75万项,想求每30项中的最大值(比方说1-30中找一个最大值x1;31到60找最大值x2等等),怎么写vba代码呢?

假如你的数据是从A1开始的
在B列显示最大值
Public Sub GetMax()
n = Range("A1048576").End(xlUp).Row
n = Application.WorksheetFunction.RoundUp(n / 30, 0)
For i = 1 To n
Cells(i, 2) = Application.WorksheetFunction.Max(Range(Cells((i - 1) * 30 + 1, 1), Cells(i * 30, 1)))
Next i
End Sub追问

非常感谢!

能不能再继续问一下:如果有两列,
第一列是x坐标;
第二列是y坐标,还是求1-30等等的最大值。输出结果的同时,把对应的x坐标也输出。怎么实现?

追答

Public Sub GetMax()
n = Range("A1048576").End(xlUp).Row
n = Application.WorksheetFunction.RoundUp(n / 30, 0)
For i = 1 To n
maxN = Application.WorksheetFunction.Max(Range(Cells((i - 1) * 30 + 1, 2), Cells(i * 30, 2)))
Cells(i, 3) = Cells((i - 1) * 30 + Application.WorksheetFunction.Match(maxN, Range(Cells((i - 1) * 30 + 1, 2), Cells(i * 30, 2))), 1) & " " & maxN
Next i
End Sub
没考虑有2个最大值的情况

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-17
VBA 求最在值最好用这个
worksheetfunction.max(range("xxxx")

很多数的话外面加一个for...next ...循环
第2个回答  2012-02-17
不懂代码最直接的办法就是录制VBA
相似回答