Доброго, всем! Присваиваю разный цвет ячейкам, по условию (файл примера). Делаю это "перебором". Как чайник, не знаю, а возможно ли заранее в массиве присвоить эти форматы (цвета) и применить к диапазону сразу, без перебора по ячейкам? Ни форум, ни поисковик мне не помогли.
[vba]
Код
Option Explicit Sub color_() Dim rn_, i Dim arrNS_ Application.ScreenUpdating = False
With Sheets("Лист1") rn_ = .Range("A" & .Rows.Count).End(xlUp).Row ReDim arrNS_(1 To rn_, 1 To 1) arrNS_ = .Range("A1").Resize(rn_, 1).Value For i = 2 To rn_ If arrNS_(i, 1) Then If arrNS_(i, 1) = 1 Then .Cells(i, 1).Interior.Color = 11851260 'RGB(252, 213, 180) Else: .Cells(i, 1).Interior.Color = 9803737 'RGB(217, 151, 149) End If Else: .Cells(i, 1).Interior.Color = 14942207 'RGB(255, 255, 227) End If Next End With
Application.ScreenUpdating = True End Sub
[/vba]
Доброго, всем! Присваиваю разный цвет ячейкам, по условию (файл примера). Делаю это "перебором". Как чайник, не знаю, а возможно ли заранее в массиве присвоить эти форматы (цвета) и применить к диапазону сразу, без перебора по ячейкам? Ни форум, ни поисковик мне не помогли.
[vba]
Код
Option Explicit Sub color_() Dim rn_, i Dim arrNS_ Application.ScreenUpdating = False
With Sheets("Лист1") rn_ = .Range("A" & .Rows.Count).End(xlUp).Row ReDim arrNS_(1 To rn_, 1 To 1) arrNS_ = .Range("A1").Resize(rn_, 1).Value For i = 2 To rn_ If arrNS_(i, 1) Then If arrNS_(i, 1) = 1 Then .Cells(i, 1).Interior.Color = 11851260 'RGB(252, 213, 180) Else: .Cells(i, 1).Interior.Color = 9803737 'RGB(217, 151, 149) End If Else: .Cells(i, 1).Interior.Color = 14942207 'RGB(255, 255, 227) End If Next End With
Единственное, что как-то сразу так в голову пришло - собирать одноцветные ячейки в одну кучу (например, через Юнион http://www.excelworld.ru/forum/10-32078-207833-16-1485381468) и красить на листе потом только 3 раза - сразу все светло-розовые, сразу все темно-розовые и оставшиеся желтые Так минимизируется обращение к листу, что обычно существенно увеличивает скорость работы
Единственное, что как-то сразу так в голову пришло - собирать одноцветные ячейки в одну кучу (например, через Юнион http://www.excelworld.ru/forum/10-32078-207833-16-1485381468) и красить на листе потом только 3 раза - сразу все светло-розовые, сразу все темно-розовые и оставшиеся желтые Так минимизируется обращение к листу, что обычно существенно увеличивает скорость работы_Boroda_