2017-01-19 3 views
0

Привет мне нужно изменить цвет шрифта ячеек в красный (столбец М), если оно удовлетворяет двум условиям:красящие клетки на основе двух условий в VBA

  1. Col P должен иметь текст «ожидания» и
  2. Значение Col M должно быть больше 1,0.

Не могли бы вы рассказать, как решить эту проблему?

Я попытался следующий код, но он не работает:

Sub Latency() 
    Dim r As Long 
    Dim m As Long 
    On Error GoTo ExitHere: 
m = Range("A:B").Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 
Application.ScreenUpdating = False 
For r = 1 To m 
    If Range("O" & r) = "*waiting* && Range("M" & r) >= 1 Then 
     Range("M" & r).Cells.Font.ColorIndex = 3 
    Else 
     Range("M" & r).Cells.Font.ColorIndex = 0 
    End If 
Next r 
ExitHere: 
    Application.ScreenUpdating = True 
End Sub 
+0

Какая ошибка у вас возникла? –

+0

синтаксическая ошибка в 'If Range (" O "& r) =" * waiting * && Range ("M" & r)> = 1 Then' –

ответ

0

Ваш m был выключен, и я расщепляется ваше if заявление

EDIT: изменение цвета обратно к черному было неправильно, я обновил свой код.

Sub Latency() 
Dim r As Long 
Dim m As Long 
On Error GoTo ExitHere: 
m = Range("M:O").Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row 
Application.ScreenUpdating = False 
For r = 1 To m 
    If Range("O" & r) = "waiting" Then 
     If Range("M" & r) >= 1 Then 
      Range("M" & r).Cells.Font.ColorIndex = 3 
     End If 
    Else 
     Range("M" & r).Cells.Font.ColorIndex = 0 
    End If 
Next r 
ExitHere: 
Application.ScreenUpdating = True 
End Sub 
+0

Я пробовал это, и я не получил никакой синтаксической ошибки, и не получил результат. В ячейках не было окрашивания, которое соответствует этому условию :( –

+0

отлично работает в моей системе ... просто чтобы быть уверенным: значения находятся в столбце «M» и «ожидание» находится в столбце «O» –

0

Посмотрите на код окраски вашего кода. Похоже, вы забыли закрыть отметку с цитатой после *waiting*.

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