|
WorksheetChange Event
|
|||
---|---|---|---|
#18+
Помогите, пожалуйста! Впервые пытаюсь создать макрос и немного не получается. Очень буду благодарен за помощь. Цель макроса - автоматически выделять и окрашивать строку таблицы в определенный цвет по значению активной ячейки строки (она крайняя правая). То, что получилось работает несколько кривовато. Код: 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. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2011, 11:10 |
|
WorksheetChange Event
|
|||
---|---|---|---|
#18+
> Автор: geoandpor > Цель макроса - автоматически выделять и окрашивать строку таблицы в определенный цвет по значению активной ячейки > строки (она крайняя правая). А зачем для этого макрос? Бордер у всех одинаком, ставь сразу. Потом закрашивай все ячейки цветом из последнего Else. Потом идешь в меню Формат->Условное форматирование и на появившейся форме прописываешь три условия. Потом выделяешь ячейку с условным форматированием, и "кисточкой" копируешь формат на всю таблицу. И получаешь все без макросов вообще. > То, что получилось работает несколько кривовато. В чем кривость заключается? > Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target1 As Range) > Worksheets("Main").Activate Зачем активировать книгу в которой работаешь сейчас? > If ActiveCell.Value = 1 Then Target1 - это параметер, в который передается изменяющийся Range, а ты его переприсваиваешь. Заведи себе свою переменную для этих целей И сделай его читаемым, не жалей отступов: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
для наглядности можно поменять на select case Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
> MsgBox "You just changed " & Target1.Address А зачем сообщение пользователю? > К сообщению приложен файл (TEMPLATE E-NET. xlsm ): cкачать. Размер - 19Kb У меня нет офиса старше 2003-ей версии :) Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2011, 11:40 |
|
WorksheetChange Event
|
|||
---|---|---|---|
#18+
Добрый день, Игорь, Большое спасибо за отклик! Условным форматированием не смог обойтись - не получается скопировать формат на все строки - именно строки необходимо окрашивать. А кривость заключается в том, что окрашивается другая строка, т.е. та куда попадает курсор после нажатия Enter. Думаю, что происходят несколько измений на листе. Messagebox для меня, чтобы мне видеть где произошли изменения. Спасибо еще раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2011, 13:43 |
|
WorksheetChange Event
|
|||
---|---|---|---|
#18+
geoandporУсловным форматированием не смог обойтись - не получается скопировать формат на все строки - именно строки необходимо окрашивать. Это просто. Там прописывается формула с абсолютной адресацией, тебе нужно убрать знак доллара($) после имени столбца. Вообщем посмотри в моем варианте как я написал формулу geoandporА кривость заключается в том, что окрашивается другая строка, т.е. та куда попадает курсор после нажатия Enter. Это потому, что ты оперируешь ActiveCell, а активной ячейкой становится другая. поэтому все вычисления производятся для неё. Тебе нужно оперировать параметром, который передается в событие - Target. Именно Target содержит изменяемую ячейку :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2011, 14:35 |
|
|
start [/forum/topic.php?fid=60&gotonew=1&tid=2158921]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 342ms |
total: | 477ms |
0 / 0 |