Excel 2010 IF() 语句帮助

Excel 2010 IF() 语句帮助

我需要帮助将其转换为 Excel 公式或 VBA 脚本。如果您有任何问题,请告诉我。它需要在从第 2 行开始到第 30 行的每一行上运行。这是第 2 行的示例。此外,如果 J2 中有除 1 或 2 以外的任何字符(包括无字符或空字符),则 M2 也需要保持空白。

if (J2="1" || J2="2"){
    if (I2="*(AE)*"){
        M2="(AE)"
    }
    else{
        if(I2="*(OT)*"){
            M2="(OT)"
        }
        else{
            if(I2="*(OT SP)*" || I2="*(OTSP)*"){
                M2="(OT SP)"
            }
            else{
                M2="F"
            }
        }
    }
}

答案1

在 VBA 中,与您的示例等效的是:

If Range("J2").Value = "1" Or Range("J2").Value = "2" Then
    If Range("I2").Value Like "*(AE)*" Then
        Range("M2").Value = "(AE)"
    End If
ElseIf Range("I2").Value Like "*(OT)*" Then
    Range("M2").Value = "(OT)"
ElseIf Range("I2").Value Like "*(OT SP)*" Or Range("I2").Value Like "*(OTSP)*" Then
    Range("M2").Value = "(OT SP)"
Else
    Range("M2").Value = "F"
End If

但是为了使这个循环从第 2 行到第 30 行,我们将添加一个简单的行变量和循环:

theRow = 2

Do
    If Range("J" & theRow).Value = "1" Or Range("J" & theRow).Value = "2" Then
        If Range("I" & theRow).Value Like "*(AE)*" Then
            Range("M" & theRow).Value = "(AE)"
        ElseIf Range("I" & theRow).Value Like "*(OT)*" Then
            Range("M" & theRow).Value = "(OT)"
        ElseIf Range("I" & theRow).Value Like "*(OT SP)*" Or Range("I" & theRow).Value Like "*(OTSP)*" Then
            Range("M" & theRow).Value = "(OT SP)"
        Else
            Range("M" & theRow).Value = "F"
        End If
    End If

    theRow = theRow + 1

Loop Until theRow = 31

相关内容