我在下面有一个代码,该代码在我添加了新的位后停止工作:
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
...