2017-12-08 2 views
0

모두 안녕하세요.조건이 충족되지 않을 때 "True"로 평가되는 IF 문

여러 개의 가스 값에 따라 수행 할 작업을 결정하는 계산기를 만들려고합니다. 각 가스는 4 개의 범위 중 하나에 속하는 값을 가질 것입니다. 각 가스에는 그 값이 속하는 범위의 "우선 순위"가 부여됩니다. 그런 다음 가장 높은 우선 순위가 수행 할 작업을 결정합니다.

문제점 :

제 조건부 각 블록의 문이 셀의 값을 조건에 지정된 값보다 큰 경우에도 "참"으로 평가되는 경우. 셀의 값에 따라 조건을 적절히 평가하기 위해 조건문을 어떻게 얻을 수 있습니까?

하위 DGOA_Action_500kVA()

Dim HydrogenValue As Variant 
Dim MethaneValue As Variant 
Dim EthaneVaule As Variant 
Dim EthyleneValue As Variant 
Dim AcetyleneValue As Variant 
Dim Action As Integer 


Dim HydrogenPriority As Integer 
Dim MethanePriority As Integer 
Dim EthanePriority As Integer 
Dim EthylenePriority As Integer 
Dim AcetylenePriority As Integer 

Worksheets("500 kVa").Activate 
HydrogenValue = Worksheets("500 kVa").Range("B3").Select 
MethaneValue = Worksheets("500 kVa").Range("C3").Select 
EthaneVaule = Worksheets("500 kVa").Range("F3").Select 
EthyleneValue = Worksheets("500 kVa").Range("G3").Select 
AcetyleneValue = Worksheets("500 kVa").Range("H3").Select 


Dim PriorityRange As Range 
Set PriorityRange = Worksheets("500 kVa").Range("J3:P3") 


If HydrogenValue < 2000 Then 
    HydrogenPriority = 1 
    MsgBox (Worksheets("500 kVa").Range("B6").Select) 

    ElseIf HydrogenValue >= 2000 And HydrogenValue < 20000 Then 
     HydrogenPriority = 2 

    ElseIf HydrogenValue >= 20000 And HydrogenValue < 27000 Then 
     HydrogenPriority = 3 

    ElseIf HydrogenValue >= 27000 Then 
     HydrogenPriority = 4 
End If 


If MethaneValue < 2000 Then 
    MethanePriority = 1 

    ElseIf MethaneValue >= 2000 And MethaneValue < 15000 Then 
     MethanePriority = 2 

    ElseIf MethaneValue >= 15000 Then 
     MethanePriority = 4 
End If 


If EthaneVaule < 1000 Then 
    EthanePriority = 1 

    ElseIf EthaneVaule >= 1000 And EthaneVaule < 2250 Then 
     EthanePriority = 3 

    ElseIf EthaneVaule <= 2250 Then 
     EthanePriority = 4 
End If 

If EthyleneValue < 1000 Then 
    EthylenePriority = 1 

    ElseIf EthyleneValue >= 1000 And EthyleneValue < 3000 Then 
     EthylenePriority = 3 

    ElseIf EthyleneValue >= 2250 Then 
     EthylenePriority = 4 

    Else 
     EthylenePriority = 1 
End If 

If AcetyleneValue < 1 Then 
    AcetylenePriority = 1 

    ElseIf AcetyleneValue >= 1 And AcetyleneValue < 20 Then 
     AcetylenePriority = 2 

    ElseIf AcetyleneValue >= 20 And AcetyleneValue < 100 Then 
     AcetylenePriority = 3 

    ElseIf AcetyleneValue >= 100 Then 
     AcetylenePriority = 4 

    Else 
     AcetylenePriority = 1 

End If 

Worksheets("500 kVa").Range("J3").Value = HydrogenPriority 
Worksheets("500 kVa").Range("K3").Value = MethanePriority 
Worksheets("500 kVa").Range("N3").Value = EthanePriority 
Worksheets("500 kVa").Range("O3").Value = EthylenePriority 
Worksheets("500 kVa").Range("P3").Value = AcetylenePriority 



Action = Application.WorksheetFunction.Max(PriorityRange) 

Select Case Action 

    Case 1 
     Worksheets("Sheet1").Range("AX4").Value = "Normal" 
    Case 2 
     Worksheets("Sheet1").Range("AX4").Value = "Add in Watch List" 
    Case 3 
     Worksheets("Sheet1").Range("AX4").Value = "Resample" 
    Case 4 
     Worksheets("Sheet1").Range("AX4").Value = "Engineering Evaluation" 
    Case Else 
     Worksheets("Sheet1").Range("AX4").Value = "Error" 
End Select 

Worksheets(1).Activate 
MsgBox ("The Action Has Been Determined") 

최종 하위

답변

0
내가 셀 내의 내용을 얻을 대신 "값"속성의 실수로 속성을 "선택"사용 된 것을 깨달았

.

문제가 해결되었습니다.

관련 문제