条件格式 vba with if
conditional formatting vba with if
我有一个问题:
我正在尝试同时制作两种不同的条件格式。
但它只适用于第二个。
我正在使用 if 和 Elseif,并且只工作 endif
我必须写什么才能让他们都工作?第一个接着另一个?
For Each cell In Range("A1:AA1")
If cell.Value = "GM WP6 Sensor Status" Then
Cells.FormatConditions.Delete
Columns("H:H").Select
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _
Formula1:="=32671"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
'Selection.FormatConditions(1).StopIfTrue = False
Columns("H:H").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=LEN(TRIM(H1))=0"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.Pattern = xlNone
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Range("A1").Select
''''''''''''''''''''''''''Tikrina kita
ElseIf cell.Value = "GM WP6 Sensor Status light" Then
Cells.FormatConditions.Delete
Columns("I:I").Select
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _
Formula1:="=32767"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Columns("I:I").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=LEN(TRIM(I1))=0"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.Pattern = xlNone
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Range("A1").Select
End If
Next cell
请试一试...
Sub ConditionalFormatting()
Columns("H:H").FormatConditions.Delete
Columns("I:I").FormatConditions.Delete
If Application.CountIf(Range("A1:AA1"), "GM WP6 Sensor Status") > 0 Then
Columns("H:H").FormatConditions.Add Type:=xlExpression, Formula1:= _
"=AND(LEN(TRIM(H1))>0,H1<>32671)"
Columns("H:H").FormatConditions(Columns("H:H").FormatConditions.Count).SetFirstPriority
With Columns("H:H").FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
End If
If Application.CountIf(Range("A1:AA1"), "GM WP6 Sensor Status light") > 0 Then
Columns("I:I").FormatConditions.Add Type:=xlExpression, Formula1:= _
"=AND(LEN(TRIM(I1))>0,I1<>32671)"
Columns("I:I").FormatConditions(Columns("I:I").FormatConditions.Count).SetFirstPriority
With Columns("I:I").FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
End If
End Sub
我有一个问题: 我正在尝试同时制作两种不同的条件格式。 但它只适用于第二个。 我正在使用 if 和 Elseif,并且只工作 endif 我必须写什么才能让他们都工作?第一个接着另一个?
For Each cell In Range("A1:AA1")
If cell.Value = "GM WP6 Sensor Status" Then
Cells.FormatConditions.Delete
Columns("H:H").Select
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _
Formula1:="=32671"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
'Selection.FormatConditions(1).StopIfTrue = False
Columns("H:H").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=LEN(TRIM(H1))=0"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.Pattern = xlNone
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Range("A1").Select
''''''''''''''''''''''''''Tikrina kita
ElseIf cell.Value = "GM WP6 Sensor Status light" Then
Cells.FormatConditions.Delete
Columns("I:I").Select
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _
Formula1:="=32767"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Columns("I:I").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=LEN(TRIM(I1))=0"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.Pattern = xlNone
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Range("A1").Select
End If
Next cell
请试一试...
Sub ConditionalFormatting()
Columns("H:H").FormatConditions.Delete
Columns("I:I").FormatConditions.Delete
If Application.CountIf(Range("A1:AA1"), "GM WP6 Sensor Status") > 0 Then
Columns("H:H").FormatConditions.Add Type:=xlExpression, Formula1:= _
"=AND(LEN(TRIM(H1))>0,H1<>32671)"
Columns("H:H").FormatConditions(Columns("H:H").FormatConditions.Count).SetFirstPriority
With Columns("H:H").FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
End If
If Application.CountIf(Range("A1:AA1"), "GM WP6 Sensor Status light") > 0 Then
Columns("I:I").FormatConditions.Add Type:=xlExpression, Formula1:= _
"=AND(LEN(TRIM(I1))>0,I1<>32671)"
Columns("I:I").FormatConditions(Columns("I:I").FormatConditions.Count).SetFirstPriority
With Columns("I:I").FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
End If
End Sub