2017-06-13 93 views
-1

我正在處理此代碼多個條件幾個星期,它一直沒有工作。我也檢查了多個網站參考無濟於事。所以基本上,我的宏正在看多列。如果Col B上顯示「RAIL」,ColC上顯示「France」或「Germany」,col O顯示等於或超過77天,則Col O上的特定單元格將變爲紅色。
提前感謝所有的幫助或建議!基於3列滿足條件時的VBA代碼顏色單元格

這是我的代碼到目前爲止,當我運行它時沒有被着色。

'顏色,如果它示出了FF代碼導致 ' 色柱B:RAIL,柱C:要麼法國或德國,山口○:IF => 77天

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

Y我們的問題是,您正在使用'rcell.Offset(0,2).Value =「FRANCE」'將'D'列轉換爲法國''rcell.Offset(0,1).Value =「FRANCE」' –

+1

如果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 
相關問題