Function Max_N(Диапазон As Variant, k As Integer) As Double
Dim i As Integer
Dim МаксЧисло As Double
МаксЧисло = -1000 ' гарантированно минимальное число
For i = 1 To k
МаксЧисло = Максимальный(Диапазон, МаксЧисло)
Next i
Max_N = МаксЧисло
End Function
Function Максимальный(Диапазон As Variant, ПослМакс As Double) As Double
Dim i, n As Integer
Dim МаксЧисло As Double
n = Диапазон.Rows.Count * Диапазон.Columns.Count
МаксЧисло = -1000 ' гарантированно минимальное число
For i = 1 To n
If Диапазон(i) > МаксЧисло And Диапазон(i) <> ПослМакс Then
МаксЧисло = Диапазон(i)
End If
Next i
Максимальный = МаксЧисло
End Function
Вызов
=Max_N(A2:B10;2)
где
A2:B10 - диапазон
2 - номер от последнего максимального числа (т.е. второе максимальное)
Только в коде надо отрегулировать под задачу значение -1000, как заведомо минимальное число