Раскраска диапазона ячеек в Excel с использованием VBA - PullRequest
1 голос
/ 26 июля 2010

У меня есть электронная таблица, которую я использую на работе, чтобы отслеживать возвращенные контракты.Я установил цветовой ключ, чтобы быстро просмотреть лист, чтобы узнать, какие контракты нам еще нужно вернуть и к какому менеджеру аккаунта принадлежит аккаунт.

Инициалы менеджера по работе с клиентами перечислены в столбце A;оттуда я хотел бы закрасить диапазон ячеек в этой строке (A: H) в зависимости от того, кто вводит инициалы в A. Сейчас у меня есть следующий код на месте, но мне не нравится, как электронная таблица выглядит свесь ряд окрашен:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column <> 1 Then Exit Sub

Select Case Target

Case "MKH"
Target.EntireRow.Interior.ColorIndex = 36

Case "MAH"
Target.EntireRow.Interior.ColorIndex = 39

Case "MJM"
Target.EntireRow.Interior.ColorIndex = 34

Case "JVE"
Target.EntireRow.Interior.ColorIndex = 35

Case Else
Target.EntireRow.Interior.ColorIndex = 0

End Select

PS Большинство сотрудников в нашем офисе все еще используют Office 2003, поэтому условное форматирование не вариант.

Ответы [ 2 ]

6 голосов
/ 26 июля 2010

Если ваш вопрос состоит в том, как закрасить часть строки вместо целой, это должно работать:

Range("A" & Target.Row, "H" & Target.Row).Interior.ColorIndex = 10
0 голосов
/ 20 мая 2013

В зависимости от того, сколько у вас строк, скорость вашего компьютера, версия Excel и т. Д. События обычно замедляют работу вашего рабочего листа и в значительной степени замедляют другие коды VBA.

Для того, что вы хотите «Условное форматирование» всегда лучшая альтернатива.

...