2017-11-29 7 views
0

ですので、以下のコードを実行しようとしています。要点までまっすぐでなければなりません。なぜそれが機能していないのか分かりません。セルb2が「John」であり、セルO2が空の場合、O2は赤でなければなりません。 O2が空でない場合は、色付きではありません。VBAの色の強調表示は、IFに基づいて

助けが必要です。

Sub columnO(d As Long) 

If Cells(d, "B") = "John" And Cells(d, "O") = "" Then  
    Cells(d, "O").Interior.Color = RGB(255, 0, 0) 
Else 
    Cells(d, "O").Interior.Color = RGB(1000, 1000, 1000) 
End If 

End Sub 

Private Sub Worksheet_Change(ByVal Target As Range) 

If Not Application.Intersect(Range("B10:O10000"), Target) Is Nothing Then 
    columnO Target.Row 
End If 

End Sub 
+0

問題の原因がわからないときにどのように機能しないのかわかりません。 – SJR

+0

"B2"は変更中で、 'Worksheet_Change'イベントで' Range( "B10:O10000") 'を探しているので、" B2 "はイベントをトリガーしません。行10(2ではなく)から探し始めます。 –

+0

問題は、セル、つまりB2に「John」と書いて、セルO2が空の場合、セルO2が赤で表示されないということです。 – geocc

答えて

2

これは条件付き書式設定で簡単に行うことができます。 >あなただけの希望の形式を設定する必要が続いて決定する式...と型式

=$B$2<>"John" 

を使用してください - 新しいルール> - ちょうどあなたのリボンの[ホーム]メニューから[条件付き書式を選択します。数式で$をトグルすると、必要に応じて書式をドラッグしてコピーできます。

0

VBAの代わりに条件付き書式を使用するのはなぜですか? 管理しやすくなる場合があります

+0

Flaniganga:私はVBAとすべての私の仕事をコード化することを学びたいからです。シンプルなコードを書くだけで、コードがどのように一般的に機能するかをより速く理解するのに役立ちます。 – geocc

関連する問題