【问题标题】:if condition with multiple and conditionsif条件有多个and条件
【发布时间】:2017-03-24 16:01:53
【问题描述】:

我使用的代码包含一个 If 条件和多个 And 条件。

在我不使用多个And 条件之前,此代码可以正常工作,但是当我使用多个And 条件时会出现错误:

子或函数未定义。

即当我将代码作为代码行扩展到下一个级别时

代码如下:-

Sub main()

With Worksheets("Employee Data")

Sheets("Employee Data").Range("AQ4:AQ2000").Value = ""

If Range("F4") = "" Then
Range("AQ4") = ""
Else
If Range("F4").Value = "E1" And Range("AB4").Value = "Yes" Then
Range("AQ4").Formula = "=""Due for Promotion to E2A Level w.e.f."" &  TEXT(DATE(YEAR(AP4)+1,MONTH(AP4),DAY(AP4)),""DD-MMM-YYYY"")"
Else
If Range("F4") = "E1" And Range("AB4").Value = "No" Then
Range("AQ4").Formula = "=""Due for Promotion to E2A Level w.e.f."" &  TEXT(DATE(YEAR(AP4)+2,MONTH(AP4),DAY(AP4)),""DD-MMM-YYYY"")"
If Range("F4") = "E2" And Range("AB4").Value = "Yes" Then
Range("AQ4").Formula = "=""Due for Promotion to E2A Level w.e.f."" &  TEXT(DATE(YEAR(AP4)+1,MONTH(AP4),DAY(AP4)),""DD-MMM-YYYY"")"
Else
If Range("F4") = "E2A" And Range("AB4").Value = "Yes" Then
Range("AQ4").Formula = "=""Due for Promotion to E3 Level w.e.f."" &  TEXT(DATE(YEAR(AP4)+4,MONTH(AP4),DAY(AP4)),""DD-MMM-YYYY"")"

' error lies in this code line i.e. sub or function not defined

Else
If Range("F4") = "E2A" And Range("AB4").Value = "NO" And Ragne("P4").Value < 9 And Range("AE4").Value = "NA" Then
Range("AQ4").Formula = "=""Due for Promotion to E3 Level w.e.f."" &  TEXT(DATE(YEAR(AP4)+5,MONTH(AP4),DAY(AP4)),""DD-MMM-YYYY"")"
End If
End If
End If
End If
End If
End If
End With
End Sub

有人可以帮忙吗?

【问题讨论】:

  • 您在说错误所在的位置或附近打错字 - 您使用的是 Ragne 而不是 Range
  • 你的代码是“尖叫”使用Select Case Range("F4").Value,另一个Case Range("AB4").Value

标签: excel vba


【解决方案1】:

我强烈建议使用适当的缩进,您可以使用ElseIf 来避免过多的End If

(我知道这不是一个答案,但在评论中指出的太多了,并且由于拼写错误,问题可能会被关闭)

Sub main()
    With Worksheets("Employee Data")
        Sheets("Employee Data").Range("AQ4:AQ2000").Value = ""

        If Range("F4") = "" Then
            Range("AQ4") = ""
        ElseIf Range("F4").Value = "E1" And Range("AB4").Value = "Yes" Then
            Range("AQ4").Formula = "=""Due for Promotion to E2A Level w.e.f."" &  TEXT(DATE(YEAR(AP4)+1,MONTH(AP4),DAY(AP4)),""DD-MMM-YYYY"")"
        ElseIf Range("F4") = "E1" And Range("AB4").Value = "No" Then
            Range("AQ4").Formula = "=""Due for Promotion to E2A Level w.e.f."" &  TEXT(DATE(YEAR(AP4)+2,MONTH(AP4),DAY(AP4)),""DD-MMM-YYYY"")"
            If Range("F4") = "E2" And Range("AB4").Value = "Yes" Then
                Range("AQ4").Formula = "=""Due for Promotion to E2A Level w.e.f."" &  TEXT(DATE(YEAR(AP4)+1,MONTH(AP4),DAY(AP4)),""DD-MMM-YYYY"")"
            ElseIf Range("F4") = "E2A" And Range("AB4").Value = "Yes" Then
                Range("AQ4").Formula = "=""Due for Promotion to E3 Level w.e.f."" &  TEXT(DATE(YEAR(AP4)+4,MONTH(AP4),DAY(AP4)),""DD-MMM-YYYY"")"
            ElseIf Range("F4") = "E2A" And Range("AB4").Value = "NO" And Range("P4").Value < 9 And Range("AE4").Value = "NA" Then
                Range("AQ4").Formula = "=""Due for Promotion to E3 Level w.e.f."" &  TEXT(DATE(YEAR(AP4)+5,MONTH(AP4),DAY(AP4)),""DD-MMM-YYYY"")"
            End If
        End If
    End With
End Sub

【讨论】:

    猜你喜欢
    • 2017-07-29
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 2014-08-13
    • 2018-04-12
    • 2012-01-13
    • 2021-11-16
    • 1970-01-01
    相关资源
    最近更新 更多