使用多个THEN语句时返回FALSE

时间:2019-07-24 20:40:59

标签: excel vba

我有一个包含条件语句的宏。如果我取出第二条用错误消息为单元格着色的语句,则它可以很好地工作。相反,当我将颜色添加到单元格时,在列中返回FALSE语句。

在这里完美工作:

Sub trantype()

Dim cell As Range
Dim lastRow As Long
Sheets("1099-Misc_Form_Template").Select
lastRow = Range("B" & Rows.Count).End(xlUp).row

For Each cell In Range("C2:" & "C" & lastRow)

    If cell.Value <> "C" And cell.Value <> "" Then cell.Offset(0, -2).Value = cell.Offset(0, -2).Value & ", Tran type error" 

Next
End Sub

但是当我添加第二个条件时,我会返回FALSE语句:


Dim cell As Range
Dim lastRow As Long
Sheets("1099-Misc_Form_Template").Select
lastRow = Range("B" & Rows.Count).End(xlUp).row

For Each cell In Range("C2:" & "C" & lastRow)

    If cell.Value <> "C" And cell.Value <> "" Then cell.Offset(0, -2).Value = cell.Offset(0, -2).Value & ", Tran type error" & cell.Interior.ColorIndex = 37

Next
End Sub

我希望同时满足这两个条件,因此错误消息将打印在偏移单元格中,并且错误所在的单元格将显示颜色。

1 个答案:

答案 0 :(得分:2)

将每个命令放入自己的行中。 &和号是文本串联运算符。它不能用于链接命令。

For Each cell In Range("C2:" & "C" & lastRow)

    If cell.Value <> "C" And cell.Value <> "" Then
        cell.Offset(0, -2).Value = cell.Offset(0, -2).Value & ", Tran type error"
        cell.Interior.ColorIndex = 37
    End If

Next

通过这种方式,您需要使用End If语句,所以请不要忘记这一点。