尝试使用VBA脚本中的一些嵌入式if命令

时间:2017-05-17 23:14:24

标签: excel vba if-statement

我要做的是让我的宏搜索“E”列中的数据。如果单元格值包含“ string ”,那么我想向左偏移一列,验证在新选择的单元格中,单元格值是否包含“”。如果新选择的单元格值为“”,则背景颜色为19,如果它包含“*”,则背景颜色为-4142。

这是我到目前为止的代码:

Sub Set_Background_Color ()

    lRow = Range("E" & Rows.Count).End(xlUp).Row
    Set MR = Range("E2:E" & lRow)
    For Each cell In MR
    If cell.Value = "X" Then cell.Offset(, -1).Interior.ColorIndex = 19

    Next

End Sub

我似乎无法弄清楚如何在Offset之后和.Interior.ColorIndex

之前嵌入一个新的If语句

我已经尝试过这个烂摊子,但你会马上看到它不起作用。

If cell.Value = "X" Then
    ElseIf cell.Offset(, -1).Value = "" Then cell.Interior.ColorIndex = 19
    Else: cell.Interior.ColorIndex = -4142

任何帮助都非常有用!

2 个答案:

答案 0 :(得分:0)

如果contains "*"你的意思是“有任何内容”,那么:

If cell.Value = "X" Then
    cell.Interior.ColorIndex = IIf(Len(cell.Offset(0, -1).Value) = 0, 19, xlNone)
End If

答案 1 :(得分:0)

如此接近!

try