/ / Formatowanie warunkowe na podstawie innej pętli komórki - vba, excel-vba, excel

Formatowanie warunkowe oparte na innej pętli komórki - vba, excel-vba, excel

Napisałem kod, gdzie ilekroć wartość zmienia się w komórce, inna komórka zostaje podświetlona, ​​jednak w poniższym kodzie działa poprawnie.
niestety, jeśli kwota jest niższa lub wyższa niż 500poprawnie podświetla komórkę B29: C29, gdy następna ilość spada 1500 w komórce C15, a następnie B31: C31 zostaje podświetlona, ​​ale B29: C29 jest tam również potrzebna zanim jakiekolwiek inne zastosowane makro najpierw musi zostać wyczyszczone.

Sub Highlight_Cells()

If Range("C18") >= "500" Then
Range("B29:C29").Interior.Color = vbYellow
End If

If Range("C18") >= "501" And Range("C18") <= "1000" Then
Range("B30:C30").Interior.Color = vbYellow
End If

If Range("C18") >= "1001" And Range("C18") <= "2000" Then
Range("B31:C31").Interior.Color = vbYellow
End If

If Range("C18") >= "2001" And Range("C18") <= "5000" Then
Range("B32:C32").Interior.Color = vbYellow
End If

If Range("C18") > "5000" Then
Range("B33:C33").Interior.Color = vbYellow
End If

End Sub

Odpowiedzi:

0 dla odpowiedzi № 1

Musisz traktować swoje kolory jak przełącznik. Jeśli są włączone, nie wyłączą się, chyba że im to powiesz.

Spróbuj tego

Sub Highlight_Cells()

If Range("C18") >= "500" Then
Range("B29:C29").Interior.Color = vbYellow
Else
Range("B29:C29").Interior.ColorIndex = 0
End If

If Range("C18") >= "501" And Range("C18") <= "1000" Then
Range("B30:C30").Interior.Color = vbYellow
Else
Range("B30:C30").Interior.ColorIndex = 0
End If

If Range("C18") >= "1001" And Range("C18") <= "2000" Then
Range("B31:C31").Interior.Color = vbYellow
Else
Range("B31:C31").Interior.ColorIndex = 0
End If

If Range("C18") >= "2001" And Range("C18") <= "5000" Then
Range("B32:C32").Interior.Color = vbYellow
Else
Range("B32:C32").Interior.ColorIndex = 0
End If

If Range("C18") > "5000" Then
Range("B33:C33").Interior.Color = vbYellow
Else
Range("B33:C33").Interior.ColorIndex = 0
End If

End Sub