"Select Case True" - 添加更多条件



我在下面有一个代码,该代码在我添加了新的位后停止工作:

Select Case True
    Case Range("B16") = "High Risk"
        Rows("5:12").EntireRow.Hidden = False
        Rows("24").EntireRow.Hidden = False
    Case Range("B16") = "Medium Risk"
        Rows("5:12").EntireRow.Hidden = True
        Rows("24").EntireRow.Hidden = True
    Case Range("B16") = "Standard Risk"
        Rows("5:12").EntireRow.Hidden = True
        Rows("24").EntireRow.Hidden = True
    End Select

完整代码:

Private Sub Worksheet_Calculate()
Application.EnableEvents = False
Application.ScreenUpdating = False
    Select Case True
    Case Range("B14") = "Medium Risk"
        Rows("5:12").EntireRow.Hidden = True
        Rows("24").EntireRow.Hidden = True
    Case Range("B14") = "High Risk"
        Rows("5:12").EntireRow.Hidden = False
        Rows("24").EntireRow.Hidden = False
    End Select
Select Case True
    Case Range("XES72") = "Medium Risk"
        Rows("5:12").EntireRow.Hidden = True
        Rows("24").EntireRow.Hidden = True
    Case Range("XES72") = "High Risk"
        Rows("5:12").EntireRow.Hidden = False
        Rows("24").EntireRow.Hidden = False
    End Select
Select Case True
    Case Range("B16") = "High Risk"
        Rows("5:12").EntireRow.Hidden = False
        Rows("24").EntireRow.Hidden = False
    Case Range("B16") = "Medium Risk"
        Rows("5:12").EntireRow.Hidden = True
        Rows("24").EntireRow.Hidden = True
    Case Range("B16") = "Standard Risk"
        Rows("5:12").EntireRow.Hidden = True
        Rows("24").EntireRow.Hidden = True
    End Select
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

有什么建议如何确保我添加的"新"部分也由VBA考虑?

有效的部分是(以及上方的所有内容):

Select Case True
    Case Range("B16") = "High Risk"
        Rows("5:12").EntireRow.Hidden = False
        Rows("24").EntireRow.Hidden = False

然后,如果我将B16更改为"中等风险"(或"标准风险"),它根本不会隐藏它应该的行:

 Case Range("B16") = "Medium Risk"
            Rows("5:12").EntireRow.Hidden = True
            Rows("24").EntireRow.Hidden = True
 Case Range("B16") = "Standard Risk"
            Rows("5:12").EntireRow.Hidden = True
            Rows("24").EntireRow.Hidden = True
        End Select

您的 Select Case statements应该以不同的方式构造。而不是此逻辑:

Select Case True
    Case Range("B16") = "High Risk"
    ...
    ...

您应该使用此逻辑:

Select Case Range("B16")  '<< check the value of cell B16 ...
    Case "High Risk"      '<< ... in case it equals 'High Risk'...
    ...                   '<< ... do this
    ...

最新更新