Добрый день!
Недавно на форуме было простенькая задача, которую можно решить формулой массивов =макс(если(то то то). Стало интересно, как её реализовать с помощью средств ВБА, перебрал много вариантов, все ок, а вот с помощью массивов не могу решить, помогите оптимизировать код.
Условие:
Должно получиться Коля - 11, Вова - 43, Петя - 543
Помогите нубу.
Недавно на форуме было простенькая задача, которую можно решить формулой массивов =макс(если(то то то). Стало интересно, как её реализовать с помощью средств ВБА, перебрал много вариантов, все ок, а вот с помощью массивов не могу решить, помогите оптимизировать код.
Условие:
коля | 2 |
вова | 43 |
вова | 2 |
коля | 11 |
петя | 543 |
вова | 1 |
петя | 23 |
Помогите нубу.
Код |
---|
Sub test() Dim n() As Variant Dim c As Long Dim lLastRow As Long, lasCou As Long Dim SUP As String Dim PUP As Long lLastRow = Cells(Rows.Count, 1).End(xlUp).Row lasCou = Cells(1, Columns.Count).End(xlToLeft).Column ReDim Preserve n(lLastRow - 1, lasCou - 1) For i = 0 To lLastRow - 1 n(i, 0) = Range("A" & i + 1) n(i, 1) = Range("B" & i + 1) Next i J = 0 For i = 0 To 6 SUP = n(i, 0) '= SUP 'коля PUP = n(i, 1) '= PUP '2 For s = 0 To 6 If n(s, 0) = SUP And n(s, 1) > PUP Then PUP = n(s, 1) End If Next s J = J + 1 Cells(J, 4).Value = SUP Cells(J, 5).Value = PUP Next i End Sub |