Если заголовков не должно быть, то так:
| Код | Sub nnn() 'Выберет строку, где сумма ячеек, начиная с 8-го столбца максимальна. 'Покрасит ее в другой цвет и скопирует под диапазон, пропустив одну строку. 'предполагается, что заголовков таблицы нет Dim mx As Long Dim rw As Range, tb As Range, sb As Range 'определим область таблицы - текущий регион данных от первой ячейки листа Set tb = ActiveSheet.Cells(1, 1).CurrentRegion 'определим область суммирования по строкам в таблице Set sb = tb.Resize(tb.Rows.Count, tb.Columns.Count - 7).Offset(0, 7) 'начальное значение индекса строки с максимальной суммой mx = 1 'цикл по строкам области суммирования по строкам For Each rw In sb.Rows 'если сумма очерендной строки больше суммы строки по индексу mx, то переопределить индекс If WorksheetFunction.Sum(sb.Rows(mx)) < WorksheetFunction.Sum(rw) Then mx = rw.Row 'конец цикла по строкам Next rw 'покрасить в красный tb.Rows(mx).Interior.Color = vbRed 'скопировать под диапазон таблицы через строку tb.Rows(mx).Copy Destination:=tb.Offset(tb.Rows.Count + 1, 0).Resize(1, tb.Columns.Count) End Sub
|
А в предыдущем варианте действительно была одна небольшая ошибка. Забыл, что исопльзовал один дополнительный столбец при отладке. Теперь исправил и тоже работает. |