多个VBA if语句触发不同的事件

Pet*_*ord 2 excel vba nested-if excel-2013

抱歉,我认为这是非常基本的,但我想知道是否有人可以告诉我为什么这些IF语句似乎只有 1 个运行。“CASH”选项的第三个IF语句有效,但不幸的是,其他 2 个语句无效。

Sub HideUnhide_Discount()

If Range("Payment_Option") = "Subscription" Then
    Range("MnthD_Row").EntireRow.Hidden = False
    Range("MnthD").Value = 0
Else
    Range("MnthD_Row").EntireRow.Hidden = True
End If

If Range("Payment_Option") = "Lease" Then
    Range("OOD_Row").EntireRow.Hidden = False
    Range("Leasing_Info").EntireRow.Hidden = False
    Range("OOD").Value = 0
Else
    Range("OOD_Row").EntireRow.Hidden = True
    Range("Leasing_Info").EntireRow.Hidden = True
End If

If Range("Payment_Option") = "Cash" Then
    Range("OOD_Row").EntireRow.Hidden = False
    Range("MnthD_Row").EntireRow.Hidden = False
    Range("OOD").Value = 0
Else
    Range("OOD_Row").EntireRow.Hidden = True
    Range("MnthD_Row").EntireRow.Hidden = True
End If

End Sub
Run Code Online (Sandbox Code Playgroud)

Sha*_*ado 5

尝试用以下内容替换您的多个If>>Else条件Select Case

Sub HideUnhide_Discount()

' first reset all rows to be visible , later according to the value, unhide specific rows
Range("MnthD_Row").EntireRow.Hidden = True
Range("OOD_Row").EntireRow.Hidden = True
Range("Leasing_Info").EntireRow.Hidden = True

Select Case Range("Payment_Option")
    Case "Subscription"
        Range("MnthD_Row").EntireRow.Hidden = False
        Range("MnthD").Value = 0

    Case "Lease"
        Range("OOD_Row").EntireRow.Hidden = False
        Range("Leasing_Info").EntireRow.Hidden = False
        Range("OOD").Value = 0

    Case "Cash"
        Range("OOD_Row").EntireRow.Hidden = False
        Range("MnthD_Row").EntireRow.Hidden = False
        Range("OOD").Value = 0

End Select

End Sub
Run Code Online (Sandbox Code Playgroud)