2015-12-26 4 views
2

Есть ли способ изменить цвет фона ячеек, если они обновляются с использованием макроса?Изменение цвета ячеек при обновлении значений в Excel

Я использую цикл VBA for с операторами IF, которые обновляют ячейки.

Возможно ли изменить цвет фона в цикле for/после их обновления?

Dim cella As Range 
For Each cella In Range("D15:AE15").Cells 
If cella.Value = 0 And cella.Offset(17).Value = 2 Then 
    cella.Value = 1 
    cella.Offset(17).Value = 1 
    cella.Interior.ColorIndex = 3 
End If 
Next cella 

Я пробовал использовать внутреннюю функцию индекса цвета внутри цикла, но он, похоже, не работает? (И я хочу только окрасить ячейки, которые обновляются)

+0

Почему бы просто не записать изменения при выполнении этого вручную? Должен показать вам, как это работает ... –

+0

очень верно! Спасибо – dan6657

+0

Что не так с вашим кодом? Предполагается изменить цвет вашей клеи на красный. Разве это не так? – vacip

ответ

0

Что вы ищете что-то вроде:

 With cella.Interior 
      .Pattern = xlSolid 
      .PatternColorIndex = xlAutomatic 
      .Color = 255 
     End With 

Однако есть некоторые синтаксические ошибки в коде. Я сделал некоторые предположения, основанные на том, что я видел, но это более корректно:

For Each cella In Range("A1:B15") 
     If cella.Value = 0 And cella.Offset(17, 0).Value = 2 Then 

      cella.Value = 1 
      cella.Offset(17, 0).Value = 1 'offset syntax is (rows, columns) 

      With cella.Interior 
      .Pattern = xlSolid 
      .PatternColorIndex = xlAutomatic 
      .Color = 255 
      End With 

     End If 
    Next cella 
0

Вставьте Worksheet_change в модуль кода, например. Лист1

Private Sub Worksheet_Change(ByVal Target As Range) 
    <your code> 
End sub 

Target изменённый диапазон (ячейки)

Смежные вопросы