Добрый день! У меня есть данные в трех столбцах, группировка при этом должна быть как в файле уже сделана. Код "Группировка" не создает нужной группировки. На больших данных очень долго работает. Подскажите, как поправить код "Группировка", чтобы она стала верной? Можно ли сделать что то чтобы обработка на больших массивах была быстрой?
Добрый день! У меня есть данные в трех столбцах, группировка при этом должна быть как в файле уже сделана. Код "Группировка" не создает нужной группировки. На больших данных очень долго работает. Подскажите, как поправить код "Группировка", чтобы она стала верной? Можно ли сделать что то чтобы обработка на больших массивах была быстрой?Заяц6628
Sub Мяу() Dim ar, fr_1&, fr_2&, fr_3&, lr&, i& Application.ScreenUpdating = False fr_1 = 1: fr_2 = 1: fr_3 = 1 lr = Cells(Rows.Count, 1).End(xlUp).Row ar = Range("A" & fr_1 & ":C" & lr).Value For i = fr_1 To lr If InStr(1, ar(i, 3), "итог", 1) Then Rows(fr_3 & ":" & i - 1).Group fr_3 = i + 1 ElseIf InStr(1, ar(i, 2), "итог", 1) Then Rows(fr_2 & ":" & i - 1).Group fr_3 = i + 1 fr_2 = i + 1 ElseIf InStr(1, ar(i, 1), "итог", 1) Then Rows(fr_1 & ":" & i - 1).Group fr_1 = i + 1 fr_2 = fr_1 fr_3 = fr_1 End If Next Application.ScreenUpdating = True End Sub
[/vba]
[vba]
Код
Sub Мяу() Dim ar, fr_1&, fr_2&, fr_3&, lr&, i& Application.ScreenUpdating = False fr_1 = 1: fr_2 = 1: fr_3 = 1 lr = Cells(Rows.Count, 1).End(xlUp).Row ar = Range("A" & fr_1 & ":C" & lr).Value For i = fr_1 To lr If InStr(1, ar(i, 3), "итог", 1) Then Rows(fr_3 & ":" & i - 1).Group fr_3 = i + 1 ElseIf InStr(1, ar(i, 2), "итог", 1) Then Rows(fr_2 & ":" & i - 1).Group fr_3 = i + 1 fr_2 = i + 1 ElseIf InStr(1, ar(i, 1), "итог", 1) Then Rows(fr_1 & ":" & i - 1).Group fr_1 = i + 1 fr_2 = fr_1 fr_3 = fr_1 End If Next Application.ScreenUpdating = True End Sub