Below Excel VBA function is only working for first If
condition, ElseIf
is not working.
Function Alarms(L2) As String
Set a = Application.WorksheetFunction
If IsError(a.Find("HHH", L2, 1)) = False Then
Alarms = "HHH HTRP"
ElseIf IsError(a.Find(" HI", L2, 1)) <> True Then
Alarms = "HI"
ElseIf IsError(a.Find("IOP", L2, 1)) = False Then
Alarms = "IOP"
ElseIf IsError(a.Find("OOP", L2, 1)) = False Then
Alarms = "OOP"
ElseIf IsError(a.Find("ANS", L2, 1)) = False Then
Alarms = "ANS"
ElseIf IsError(a.Find(" HH", L2, 1)) = False Then
Alarms = "HH"
ElseIf IsError(a.Find("HTRP", L2, 1)) = False Then
Alarms = "HHH HTRP"
ElseIf IsError(a.Find(" LO", L2, 1)) = False Then
Alarms = "LO"
ElseIf IsError(a.Find(" LL", L2, 1)) = False Then
Alarms = "LL"
ElseIf IsError(a.Find("LLL", L2, 1)) = False Then
Alarms = "LLL LTRP"
ElseIf IsError(a.Find("LTRP", L2, 1)) = False Then
Alarms = "LLL LTRP"
ElseIf IsError(a.Find("NR", L2, 1)) = False Then
Alarms = "NR"
ElseIf IsError(a.Find("DV", L2, 1)) = False Then
Alarms = "DV"
ElseIf IsError(a.Find("VEL", L2, 1)) = False Then
Alarms = "VEL"
ElseIf IsError(a.Find("TRIP", L2, 1)) = False Then
Alarms = "TRIP"
ElseIf IsError(a.Find("MHI", L2, 1)) = False Then
Alarms = "MHI MLO"
ElseIf IsError(a.Find("MLO", L2, 1)) = False Then
Alarms = "MHI MLO"
ElseIf IsError(a.Find("CERR", L2, 1)) = False Then
Alarms = "CERR"
ElseIf IsError(a.Find("PERR", L2, 1)) = False Then
Alarms = "PERR"
ElseIf IsError(a.Find("OVR", L2, 1)) = False Then
Alarms = "OVR"
ElseIf IsError(a.Find("FAULT", L2, 1)) = False Then
Alarms = "FAULT"
ElseIf IsError(a.Find("INT", L2, 1)) = False Then
Alarms = "INT"
ElseIf IsError(a.Find("ALM", L2, 1)) = False Then
Alarms = "ANN"
Else
Alarms = "-"
End If
End Function