Добрый вечер! Долго боролся но постиг заливку строк цветом, но осталось несколько "НО" 1) Как не "Гуглю" ни как не могу найти коды цветов для Excel 2013. Хочу в скрипте прописать легкие цвета что бы не напрягало глаз работающего, а получаю ... (на примере все увидите) Где же взять наглядно раскладку??? 2) Как в скрипте прописать не статичное условие ограниченной заливки строк, а именно от первого заполненного столбца до последнего (Такая необходимость возникает если вдруг количество столбцов будет меняться при фильтровании или переносе и копировании) Если можно с краткими пояснениями.
Добрый вечер! Долго боролся но постиг заливку строк цветом, но осталось несколько "НО" 1) Как не "Гуглю" ни как не могу найти коды цветов для Excel 2013. Хочу в скрипте прописать легкие цвета что бы не напрягало глаз работающего, а получаю ... (на примере все увидите) Где же взять наглядно раскладку??? 2) Как в скрипте прописать не статичное условие ограниченной заливки строк, а именно от первого заполненного столбца до последнего (Такая необходимость возникает если вдруг количество столбцов будет меняться при фильтровании или переносе и копировании) Если можно с краткими пояснениями.Постовой
dim i&, clr&: clr = 0 dim lastcolumn&: lastcolumn = cells(1, columns.count).end(xltoleft).column 'Последний заполенный столбец dim firstcolumn&: firstcolumn = cells(1,1).end(xltoright).column ' Первій заполненный столбец if lastcolumn = firstcolumn then firstcolumn = 1 ' если первый = последний, то первый = 1 for i = firstcolumn to lastcolumn ' от первого до последнего clr = clr + 10 ' счетчиком прибавляем цвета columns(i).interior.color = rgb(clr ,clr ,clr ) 'устанавливаем цвет next
[/vba]
Думаю смысл понятен?
[vba]
Код
dim i&, clr&: clr = 0 dim lastcolumn&: lastcolumn = cells(1, columns.count).end(xltoleft).column 'Последний заполенный столбец dim firstcolumn&: firstcolumn = cells(1,1).end(xltoright).column ' Первій заполненный столбец if lastcolumn = firstcolumn then firstcolumn = 1 ' если первый = последний, то первый = 1 for i = firstcolumn to lastcolumn ' от первого до последнего clr = clr + 10 ' счетчиком прибавляем цвета columns(i).interior.color = rgb(clr ,clr ,clr ) 'устанавливаем цвет next
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Работа с массивом на данном листе' Dim i& Dim coloriserange As Range Dim lastcolumn&: lastcolumn = Cells(2, Columns.Count).End(xlToLeft).Column 'Последний заполенный столбец Dim firstcolumn&: firstcolumn = Cells(2, 1).End(xlToRight).Column ' Первій заполненный столбец Dim lastrow&: lastrow = [d65535].End(xlUp).Row ' последняя строка If lastcolumn = firstcolumn Then firstcolumn = 1 ' если первый = последний, то первый = 1
For i = 2 To lastrow Set coloriserange = Range(Cells(i, firstcolumn), Cells(i, lastcolumn)) With coloriserange.Interior Select Case Cells(i, firstcolumn + 2).Value Case "ПРОМТРАНС" .Color = RGB(100, 100, 0) Case "WG" .Color = RGB(100, 100, 100) Case "ИРТЭК" .Color = RGB(100, 100, 200) Case "БЭК" .Color = RGB(100, 200, 200) End Select End With Next End Sub
[/vba]
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'Работа с массивом на данном листе' Dim i& Dim coloriserange As Range Dim lastcolumn&: lastcolumn = Cells(2, Columns.Count).End(xlToLeft).Column 'Последний заполенный столбец Dim firstcolumn&: firstcolumn = Cells(2, 1).End(xlToRight).Column ' Первій заполненный столбец Dim lastrow&: lastrow = [d65535].End(xlUp).Row ' последняя строка If lastcolumn = firstcolumn Then firstcolumn = 1 ' если первый = последний, то первый = 1
For i = 2 To lastrow Set coloriserange = Range(Cells(i, firstcolumn), Cells(i, lastcolumn)) With coloriserange.Interior Select Case Cells(i, firstcolumn + 2).Value Case "ПРОМТРАНС" .Color = RGB(100, 100, 0) Case "WG" .Color = RGB(100, 100, 100) Case "ИРТЭК" .Color = RGB(100, 100, 200) Case "БЭК" .Color = RGB(100, 200, 200) End Select End With Next End Sub