Здравствуйте уважаемый знатоки! Подскажите, пожалуйста, макрос группировки строк в зависимости от цвета. В данном случае красный. Просто строк очень много и группировать каждую вручную очень долго.
Заранее спасибо.
Здравствуйте уважаемый знатоки! Подскажите, пожалуйста, макрос группировки строк в зависимости от цвета. В данном случае красный. Просто строк очень много и группировать каждую вручную очень долго.
Так нужно? Предположил, что у Вас не всегда таблица в столбце А и со строки 1, поэтому сделал по Селекшену. Перед запуском макроса нужно выделить тот диапазон, в котором будем искать красные (достаточно первый столбец диапазона - все равно по нему проверяет) [vba]
Код
Sub RGrupSel() On Error Resume Next Cells.Rows.Ungroup 'On Error GoTo 0 For i = 1 To Selection.Rows.Count If Selection(i, 1).Font.Color = 255 Then Rows(i).Rows.Group End If Next i End Sub
[/vba]
Так нужно? Предположил, что у Вас не всегда таблица в столбце А и со строки 1, поэтому сделал по Селекшену. Перед запуском макроса нужно выделить тот диапазон, в котором будем искать красные (достаточно первый столбец диапазона - все равно по нему проверяет) [vba]
Код
Sub RGrupSel() On Error Resume Next Cells.Rows.Ungroup 'On Error GoTo 0 For i = 1 To Selection.Rows.Count If Selection(i, 1).Font.Color = 255 Then Rows(i).Rows.Group End If Next i End Sub
Только сейчас попробовал применить на своем файле.... И оказалось что если у меня закрашивает красным цветом с помощью условного форматирования - то макрос не работает. Можно ли как нибудь в этом помочь?
Заранее спасибо
Только сейчас попробовал применить на своем файле.... И оказалось что если у меня закрашивает красным цветом с помощью условного форматирования - то макрос не работает. Можно ли как нибудь в этом помочь?
Sub RGrupSel() On Error Resume Next Cells.Rows.Ungroup 'On Error GoTo 0 For i = 18 To Range("A" & Rows.Count).End(3).Row If Range("B" & i) = "" Then Rows(i).Rows.Group End If Next i End Sub
[/vba]
Все аналогично [vba]
Код
Sub RGrupSel() On Error Resume Next Cells.Rows.Ungroup 'On Error GoTo 0 For i = 18 To Range("A" & Rows.Count).End(3).Row If Range("B" & i) = "" Then Rows(i).Rows.Group End If Next i End Sub