2017-06-13 5 views
-1

このコードを複数の条件で数週間作業していますが、動作していません。私はまた無用の参照のために複数のウェブサイトをチェックしました。だから基本的に、私のマクロは複数の列を見ています。 Col Bに "RAIL"と表示され、Col Cに "France"または "Germany"が表示され、col Oの表示が77日以上になると、Col Oの特定のセルが赤色に変わります。
すべてのヘルプや推奨事項をあらかじめご了承ください!3列に基づいて条件が満たされたときの色のセルへのVBAコード

これまでのところ私のコードですが、実行すると何も表示されません。 RAIL、コルC:フランスやドイツ、コルOのいずれか:

コルB 'カラーコード、それはFFを示した場合には、 結果' をIF => 77 DAYS

Dim rng As Range 
Dim rcell As Range 
Dim lr As Long 
lr = Range("B" & Rows.count).End(xlUp).row 
Set rng = Range("B1:B" & lr) 

For Each rcell In rng.Cells 
    If rcell.Value = "RAIL" Then 
     If rcell.Offset(0, 2).Value = "FRANCE" Or rcell.Offset(0, 1).Value = "GERMANY" Then 
      If rcell.Offset(0, 15).Value >= DateAdd("d", 77, Date) Then 
       rcell.Offset(0, 13).Interior.ColorIndex = 3 
      End If 
     End If 
    End If 

Next rcell 
+0

なぜ条件付き書式はありませんか? –

+1

問題は、 'rcell.Offset(0、2).Value =" FRANCE "'が 'rcell.Offset(0、1).Value =" FRANCE "'に変更する 'France'列Dをテストしていることです。 –

+1

そして、Bからの「15」列は列Oではない列Qである。「rcell.Offset(0,13).Value> = DateAdd(「d」、77、Date) 'Remember Offsetは参照からのセルの数である。 –

答えて

0

問題解決します!フレンドリーな開発者のおかげで!どうやら、モジュールのデフォルトの比較オプションはバイナリなので、スペルの問題かもしれません。だから彼は、テキストの比較オプションを設定することを勧めました。

どのような学習経験ですか?みんなありがとう!

Option Compare Text 

Sub Test() 
Dim B As Range 
For Each B In Range("B1", Range("B" & Rows.Count).End(xlUp)) 
With Range("O" & B.Row) 
    'No color by default 
    .Interior.ColorIndex = xlColorIndexNone 

    If B.Value = "RAIL" Then 
    Select Case Range("C" & B.Row) 
     Case "FRANCE", "GERMANY" 
     If .Value >= 77 Then .Interior.ColorIndex = 3 
    End Select 
    End If 
End With 
Next 
End Sub 
関連する問題