【问题标题】:Returning FALSE when using multiple THEN statements使用多个 THEN 语句时返回 FALSE
【发布时间】:2019-07-25 04:53:35
【问题描述】:

我有一个包含条件语句的宏。如果我取出第二条用错误消息为单元格着色的语句,它就可以完美地工作。相反,当我将颜色添加到单元格时,我在列中返回了 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

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

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    将每个命令放在自己的行中。 &amp; 与号是文本连接运算符。它不能用于链接命令。

    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语句,所以不要忘记。

    【讨论】:

    • 旁注::指令分隔符)标记可用于在同一逻辑代码行中链接多个指令。并不是说我建议这样做(尤其是在If....Then thing1 : thing2 中,thing2 是否有条件地运行相对模棱两可 - 绝对更喜欢If...End If 块语法)
    猜你喜欢
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2017-08-10
    • 2015-10-17
    • 2020-09-19
    相关资源
    最近更新 更多