2015-04-10 2 views
0

У меня есть excel spreadхсет, который условно отформатирован разными цветами после сравнения дней с значением TAT.Скопируйте цветные строки, которые условно отформатированы на другой лист.

Теперь я хочу скопировать каждый цветной ряд на другой лист и назвать листы.

Я согласен, что это может быть достигнуто путем фильтрации цветов вручную, может ли это быть сделано кодом VBA?

Данные помещаются в 6-й ряд листа.

Также условно отформатированные цвета могут измениться в будущем, поэтому код должен перезаписывать цветные строки, которые размещаются на разных листах.

Пожалуйста, подтвердите и ответьте на решение, если это может быть достигнуто с помощью кода VBA.

Пожалуйста, найдите изображение ниже, чтобы узнать больше.

enter image description here

ответ

1

Это должно быть отправной точкой.

Sub Test() 
    Range("A1").Select 
    Selection.AutoFilter 
    ActiveSheet.Range("$A$1:$D$" & Range("A" & rows.count).end(xlUp).Row).AutoFilter Field:=1, Criteria1:=RGB(255, 0 _ 
    , 0), Operator:=xlFilterCellColor 
    Range("$A$1:$D$" & lastr).Select 
    Selection.SpecialCells(xlCellTypeVisible).Select 
    Selection.Copy 
    ThisWorkbook.Sheets.Add.Name = "Red" 
    Sheets("Red").select 
    Range("A" & Range("A" & rows.count).end(XlUp).row).Select 
    ActiveSheet.Paste 
    Application.CutCopyMode = False 
End Sub 
+0

спасибо дает решение с VBA кодом, я добавил строку, чтобы выбрать конец строки, однако вы дали идеальное решение для тех же, что условно отформатированных цветов в текущем листе изменятся в будущем, так когда я снова фильтрую его и копирую на красный лист через VBA, он должен хранить старые данные и добавлять новые данные ниже существующих данных, может ли это быть достигнуто? – lifeinvba

+0

'Диапазон (« A »и диапазон (« A ») и rows.count) .end (XlUp) .row). Выберите« добавили эту строку и изменили код выше, чтобы учесть это. Раньше это был «Range (« A1 »). Выберите', следовательно, он переписывает. Первая строка в основном находит последнюю строку в столбце A – izzymo

+0

Я попытался добавить строку 'Range (« A »и Range (« A ») и rows.count) .end (XlUp) .row). Выберите« в коде », но он дает ошибку в '.row) .select', что там нужно изменить? – lifeinvba

Смежные вопросы