基于3列

时间:2017-06-13 18:05:09

标签: vba

我正在使用多个条件处理此代码几个星期,但它一直没有工作。我也检查了多个网站,但没有用。所以基本上,我的宏看着多列。如果它在Col B上显示“RAIL”并且在Col C上显示“France”或“Germany”且col o显示等于或大于77天,则Col O上的特定单元将变为红色。
提前感谢所有的帮助或建议!

到目前为止,这是我的代码,运行时没有任何颜色。

'颜色代码,如果它显示ff结果 'Col B:RAIL,Col C:法国或德国,Col O: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

1 个答案:

答案 0 :(得分: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