查找范围内最高的12个连续值

我有横跨行和列的数据传播,我想find每个具有最高值的12个单元格的范围。 彼此相邻意味着从左到右,然后从下一行开始。 即A5, B5, ..., L5, A6, B6, ...

数据

我可以指定所有可能的范围,即A5:L5, B5:A6...总结和比较,但这似乎不是一个非常有效的方式去做事情。

如何去做这个?

试试这个。 您只需突出显示范围,并且消息框将返回12整数数组的起始位置。

 Sub test() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Dim rng As Range Dim FC As Integer Dim LC As Integer Dim FR As Integer Dim LR As Integer Dim r As Integer Dim c As Integer Dim i As Integer Dim j As Integer Dim k As Integer Dim max As Integer Dim maxI As Integer Dim maxCol As Integer Dim maxRow As Integer Dim intArray() As Integer Set rng = Selection FC = rng.Column FR = rng.Row LC = FC + rng.Columns.Count - 1 LR = FR + rng.Rows.Count - 1 ReDim intArray(1 To (LC * LR)) i = 1 For r = FR To LR For c = FC To LC intArray(i) = Cells(r, c) i = i + 1 Next c Next r max = 0 For i = 1 To (UBound(intArray) - 11) k = 0 k = intArray(i) For j = 1 To 11 k = k + intArray(i + j) Next j If k > max Then max = k maxI = i End If Next i maxCol = maxI Mod (rng.Columns.Count) maxRow = ((maxI - maxCol) / rng.Columns.Count) + 1 MsgBox ("Max array begins in row " & maxRow & " column " & maxCol) Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub 

让我知道这是不是正确的