powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Окрашивание в макросе
4 сообщений из 4, страница 1 из 1
Окрашивание в макросе
    #37329270
hum_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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
For i =  8  To  31 
    
    Cells( 7 , st).Value = dt
    
    Dim rs_total As ADODB.Recordset:    Set rs_total = New ADODB.Recordset
    Set rs_total.ActiveConnection = con
    
    If i =  10  Then i = i +  1 
            '--- эфект red ---
            Cells(i, st).Select
            With Selection.Interior
                    .Pattern = xlSolid
                    .PatternColorIndex = xlAutomatic
                    .Color =  255 
                    .TintAndShade =  0 
                    .PatternTintAndShade =  0 
                End With
                
            'Выборка
            Sql = " select"
            Sql = Sql & " t.trafik_dohod"
            Sql = Sql & " from everyday_report t"
            Sql = Sql & " where t.datereg = '" + dt + "'"
            Sql = Sql & " and t.type_id = 1"
            Sql = Sql & " and t.name_id = '" + Cells(i,  1 ).Text + "'"
            
            Cells( 8 , i).Interior.Color = RGB( 194 ,  214 ,  154 ) '--ОКРАШИВАНИЕ
                      
            'Заполение ячеек
            rs_total.Open Sql, con
            Cells(i, st).Value = ""
            Cells(i, st).CopyFromRecordset rs_total
            
            'k = k + 1
            
            '--- эфект null ---
            Cells(i, st).Select
                With Selection.Interior
                    .Pattern = xlNone
                    .TintAndShade =  0 
                    .PatternTintAndShade =  0 
                End With
                
            'Ищем пустые ячейки и меняем на 0 для вычислений в Листе
            'If Cells(i, 3).Value = "" Then
            'Cells(i, 3).Value = "0"
            'End If
                        
    Next i
    i =  0 
    rs_total.Close
...
Рейтинг: 0 / 0
Окрашивание в макросе
    #37329475
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hum_i,

жми F8 и по шагам смотри, как идет окраска.
P.s.
Чтоб покрасить ячейку в красный цвет нужна одна строка кода, а не восемь.
Код: plaintext
Cells(i, st).Interior.Color = vbRed
...
Рейтинг: 0 / 0
Окрашивание в макросе
    #37329482
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hum_i,

так, а по сути ты в начале красишь ячейку Cells(i, st) в красный цвет
Код: plaintext
Cells(i, st).Interior.Color = vbRed
, а потом
зачем то снимаешь окрашивание, причем снимаешь криво, через Pattern, а не Color
Код: plaintext
1.
Cells(i, st).Select
.Pattern = xlNone
Ну вот тебе и ответ, как просил так и работает.
...
Рейтинг: 0 / 0
Окрашивание в макросе
    #37329488
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hum_i,

ну и еще.
Если нужно динамическое окрашивание, то читай хелп по условному форматированию.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Окрашивание в макросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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