|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.03.2011, 11:24 | #1 |
Новичок
Джуниор
Регистрация: 02.03.2011
Сообщений: 3
|
WorksheetChange Event
Помогите, пожалуйста!
Впервые пытаюсь создать макрос и немного не получается. Очень буду благодарен за помощь. Цель макроса - автоматически выделять и окрашивать строку таблицы в определенный цвет по значению активной ячейки строки (она крайняя правая). То, что получилось работает несколько кривовато. Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target1 As Range) Worksheets("Main").Activate If ActiveCell.Value = 1 Then Set Target1 = Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, ActiveCell.Column)) Target1.Interior.Color = RGB(226, 0, 0) Target1.Borders.Color = RGB(194, 194, 194) Else If ActiveCell.Value = 2 Then Set Target1 = Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, ActiveCell.Column)) Target1.Interior.Color = RGB(27, 169, 82) Target1.Borders.Color = RGB(194, 194, 194) Else If ActiveCell.Value = 3 Then Set Target1 = Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, ActiveCell.Column)) Target1.Interior.Color = RGB(255, 192, 0) Target1.Borders.Color = RGB(194, 194, 194) Else Set Target1 = Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, ActiveCell.Column)) Target1.Interior.Color = RGB(255, 255, 255) Target1.Borders.Color = RGB(194, 194, 194) End If End If End If MsgBox "You just changed " & Target1.Address End Sub |
02.03.2011, 12:37 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
аналогичная тема была и решения были.
видите-ли закрасить - не проблема. проблема в том, что когда фокус перемещается на другую строку, старой строке необходимо вернуть первоначальное оформление (не оставлять же ее окрашеной). поищите по форуму, было
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
02.03.2011, 12:38 | #3 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Да уж, в макросе много лишнего...
код можно сократить в несколько раз, но, увы, я не смог понять, что должен делать макрос... Зачем при изменении ячейки на ЛЮБОМ листе активировать лист Main? Разве неважно, в каком столбце произошло изменения значения ячейки? Прикрепите пример файла - и на его примере своими словами разъясните, что и как должно работать. А код мы и сами придумаем. Да и вообще - зачем макрос, если есть условное форматирование? |
02.03.2011, 13:31 | #4 |
Новичок
Джуниор
Регистрация: 02.03.2011
Сообщений: 3
|
WorkSheet Change
Спасибо большое за отклик!
Высылаю файл. Условное форматирование в данном случае не предоставляет все возможности для форматирования. <Зачем при изменении ячейки на ЛЮБОМ листе активировать лист Main? Наверное, можно удалить. Это мой первый опыт. <Разве неважно, в каком столбце произошло изменения значения ячейки? Да, важно, но не смог задать это условие С уважением, |
02.03.2011, 13:57 | #5 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Цитата:
Каких возможностей в УФ вам не хватает? |
|
02.03.2011, 14:12 | #6 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Поместите этот код в МОДУЛЬ ЛИСТА:
Код:
|
02.03.2011, 16:50 | #7 |
Новичок
Джуниор
Регистрация: 02.03.2011
Сообщений: 3
|
Здорово! Огромное Вам спасибо.
Всего наилучшего! |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Event на класс | JAD! | Общие вопросы по Java, Java SE, Kotlin | 1 | 18.10.2010 11:56 |
Event... | MyLastHit | Общие вопросы Delphi | 5 | 31.07.2010 01:35 |
Очистка стека event-ов | Ivan_32 | JavaScript, Ajax | 0 | 06.02.2010 01:48 |
Объект события Event | Gerzs | Общие вопросы Delphi | 0 | 01.11.2009 10:08 |
Event для TextField | goog | Общие вопросы по Java, Java SE, Kotlin | 0 | 15.03.2009 00:17 |