Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Цвет строки в Excel / 9 сообщений из 9, страница 1 из 1
16.03.2009, 16:31:03
    #35872035
Victor_ght
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цвет строки в Excel
Подскажите, есть файлик в excel. В одном из столбцов содержатся данные 1, 2, 3, 4, 5...10.
Нужно в зависимости от значения этой ячейки закрасить всю строку цветом, а после того как на листе все окрашено - удалить(или скрыть) столбец с данными 1, 2, 3, 4, 5...10
...
Рейтинг: 0 / 0
16.03.2009, 20:28:20
    #35872646
W_I_N_T_E_R
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цвет строки в Excel
1) "...в зависимости от значения этой ячейки закрасить всю строку цветом..." Формат => Условное форматирование...
2) "...удалить (или скрыть) столбец с данными..." Автофильтр
...
Рейтинг: 0 / 0
17.03.2009, 10:02:35
    #35873192
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цвет строки в Excel
Если колонка A рабочая, и при этом одна строчка над первой ячейкой с данными отводится под заголовок, то можно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub test()
With ActiveSheet
  .Columns("A:A").AutoFit
  If .AutoFilterMode Then .AutoFilterMode = False
  For I =  1  To  10 
    .Range("A:A").AutoFilter Field:= 1 , Criteria1:=I, VisibleDropDown:=False
    Set WorkR = Intersect(.AutoFilter.Range.SpecialCells(xlCellTypeVisible), _
      .Range("A" & .AutoFilter.Range.Row +  1  & ":A" & .Rows.Count))
    If Not WorkR Is Nothing Then
      WorkR.EntireRow.Interior.ColorIndex = I
    End If
  Next I
  If .AutoFilterMode Then .AutoFilterMode = False
  .Columns("A:A").Hidden = True
End With
End Sub
Если много не подряд идущих областей с одной цифрой (список адресов более ~4000 символов), то могут быть проблемы.
...
Рейтинг: 0 / 0
17.03.2009, 12:44:12
    #35873760
Victor_ght
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цвет строки в Excel
Спасибо огромное!
Еще 2 вопроса -
1) в случае если ячейка, в которой содержаться данные от 1 до 10. может быть обьединенная, a далее в строке она разделяется, например на 2 части, можно ли как-то закрасить обе?
2) А как-то можно присвоить свой цвет каждому значению от 1 до 10?
...
Рейтинг: 0 / 0
17.03.2009, 13:19:46
    #35873885
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цвет строки в Excel
Victor_ght,

1. MergeCells и MergeArea
2. VBA.ColorConstants. Тут правда не от 1 до 10, но думаю, что разберетесь.
...
Рейтинг: 0 / 0
17.03.2009, 16:16:13
    #35874538
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цвет строки в Excel
Вот вариант с объединенными ячейками.
Вместо цифр 1,2...10 подставить коды нужных цветов
Интересный баг Екселя всплыл, пока не отключишь фильтр, не ставит цвет в объединенной строке
Код: plaintext
1.
      If .AutoFilterMode Then .AutoFilterMode = False
      WorkR1.Interior.ColorIndex = I

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Sub test2()
With ActiveSheet
  .Columns("A:A").AutoFit
  If .AutoFilterMode Then .AutoFilterMode = False
  For I =  1  To  10 
    .Range("A:A").AutoFilter Field:= 1 , Criteria1:=I, VisibleDropDown:=False
    Set WorkR = Intersect(.AutoFilter.Range.SpecialCells(xlCellTypeVisible), _
      .Range("A" & .AutoFilter.Range.Row +  1  & ":A" & .Rows.Count))
    Set WorkR1 = WorkR.EntireRow
    If Not WorkR Is Nothing Then
'      WorkR.EntireRow.Interior.ColorIndex = I
      
      Wcolor = WorksheetFunction.Choose(I,  1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,  9 ,  10 )
      For Each sAr In WorkR.Areas
        For Each Rng In sAr
          If Rng.MergeCells Then Set WorkR1 = Union(WorkR1, Rng.MergeArea.EntireRow)
        Next Rng
      Next sAr
      If .AutoFilterMode Then .AutoFilterMode = False
      WorkR1.Interior.ColorIndex = I

    End If
  Next I
  If .AutoFilterMode Then .AutoFilterMode = False
  .Columns("A:A").Hidden = True
End With
End Sub
...
Рейтинг: 0 / 0
17.03.2009, 16:18:31
    #35874551
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цвет строки в Excel
описку дал, вместо
Код: plaintext
WorkR1.Interior.ColorIndex = I
надо
Код: plaintext
WorkR1.Interior.ColorIndex = Wcolor
...
Рейтинг: 0 / 0
17.03.2009, 17:52:40
    #35874969
Victor_ght
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цвет строки в Excel
Сергей, еще раз спасибо Вам огромное!
В данном варианте я разобраться не смог, почему-то он не отрабатывает.
Если не трудно, посмотрите пример.
...
Рейтинг: 0 / 0
18.03.2009, 08:16:57
    #35875621
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Цвет строки в Excel
строку Set WorkR1 = WorkR.EntireRow
надо после if поставить. виноват, не протестировал:)
Код: plaintext
1.
    If Not WorkR Is Nothing Then
      Set WorkR1 = WorkR.EntireRow
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Цвет строки в Excel / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]