Вопрос по VBA в Excel - страница 2

 
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, как заведомо минимальное число

Причина обращения: