多个组合if语句

时间:2017-03-10 12:25:21

标签: excel vba excel-vba

我看过但却找不到任何看起来非常适合我的问题的东西。

我的问题是我有几个helpercolumns检查某些值来决定是否决定一个条件,而不是决定或重新规划。 我今天的问题是,如果重新计划的条件满足,这将覆盖已交付但未交付。

有没有办法将这些与AND或类似的东西结合起来?

提前致谢

以下代码

If lskolumn > 0 Then
    dagensdatum = dataworksheet.Cells(Rad,lkolumn).Value 'Dagens datum för leveransen
    leveranssheet.Cells(i, 13).Value = IsWeekend(dagensdatum)  'Dagens datum för leveransen
    If leveranssheet.Cells(i, 12).Value >= 1 Then
        leveranssheet.Cells(i, 1).Value = "Delivered"
    Else
        leveranssheet.Cells(i, 1).Value = "Not Delivered"
    End If

    If leveranssheet.Cells(i, 13).Value <> leveranssheet.Cells(i, 7).Value Then
        leveranssheet.Cells(i, 1).Value = "Replanned"
    End If
End If

2 个答案:

答案 0 :(得分:0)

首先,我建议避免嵌套,然后再以更好的格式再次查看问题。

If lskolumn > 0 Then
  dagensdatum = dataworksheet.Cells(Rad,     lkolumn).Value 'Dagens datum för     leveransen
  leveranssheet.Cells(i, 13).Value = IsWeekend(dagensdatum)  'Dagens datum för leveransen 
End If

If lskolumn > 0 && leveranssheet.Cells(i, 12).Value >= 1 Then
  leveranssheet.Cells(i, 1).Value = "Delivered"
End If

If lskolumn > 0 && !leveranssheet.Cells(i, 12).Value >= 1 Then
  leveranssheet.Cells(i, 1).Value = "Not Delivered" 
End If

If lskolumn > 0 && leveranssheet.Cells(i, 13).Value <> leveranssheet.Cells(i, 7).Value Then
  leveranssheet.Cells(i, 1).Value = "Replanned" 
End If

答案 1 :(得分:0)

您可以在第一个语句中使用上一个if语句,如下所示:

If leveranssheet.Cells(i, 12).Value >= 1 Then
    If leveranssheet.Cells(i, 13).Value <> leveranssheet.Cells(i, 7).Value Then
        leveranssheet.Cells(i, 1).Value = "Replanned"
    Else
        leveranssheet.Cells(i, 1).Value = "Delivered"
    End if
Else
    leveranssheet.Cells(i, 1).Value = "Not Delivered"
End If

请注意:我不确定您的声明中的“重新计划”标准是什么,但我认为这是您想要做的。