多Worksheet_Change问题
我试图在一个Worksheet_Change
中有多个Worksheet_Change
,但是我遇到问题实现它们。
我试过了:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$6" Then Select Case Target.Value Case "Yes" Range("DataYes").EntireRow.Hidden = True Range("DataNo").EntireRow.Hidden = False Case "No" Range("DataYes").EntireRow.Hidden = False Range("DataNo").EntireRow.Hidden = True Case "" Range("DataYes").EntireRow.Hidden = True Range("DataNo").EntireRow.Hidden = True End Select End If If Target.Address = "$Q$6" Then Select Case Target.Value Case "TRUE" Range("DataNo").EntireRow.Hidden = False Range("CrComments").EntireRow.Hidden = False Case "FALSE" Range("CrComments").EntireRow.Hidden = True End Select End If End Sub
在这种情况下,只有第一段代码有效。 第二个不是。 没有错误信息。
我也试过:
Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address Case "$B$6" If Range("B6").Value = "Yes" Then Range("DataYes").EntireRow.Hidden = True Range("DataNo").EntireRow.Hidden = False ElseIf Range("B6").Value = "No" Then Range("DataYes").EntireRow.Hidden = False Range("DataNo").EntireRow.Hidden = True ElseIf Range("B6").Value = "" Then Range("DataYes").EntireRow.Hidden = True Range("DataNo").EntireRow.Hidden = True End If End If Case "$Q$6" If Range("Q6").Value = "TRUE" Then Range("CrComments").EntireRow.Hidden = False ElseIf Range("Q6").Value = "FALSE" Then Range("CrComments").EntireRow.Hidden = True End If End If End Select End Sub
在这段代码中, End If
第一个case的最后一个End If
错误,我得到了End if without block if
。
删除错误的结束IF仍然不会使第二段代码工作
“FALSE”和“TRUE”的单元格值将被读取为False
和True
(布尔值,而不是string),因此您需要更改Q6上的testing。
If Target.Address = "$Q$6" Then Select Case Target.Value Case True Range("DataNo").EntireRow.Hidden = False Range("CrComments").EntireRow.Hidden = False Case False Range("CrComments").EntireRow.Hidden = True End Select End If
你有两个错误的“如果”,这里是固定的代码:
Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address Case "$B$6" If Range("B6").Value = "Yes" Then Range("DataYes").EntireRow.Hidden = True Range("DataNo").EntireRow.Hidden = False ElseIf Range("B6").Value = "No" Then Range("DataYes").EntireRow.Hidden = False Range("DataNo").EntireRow.Hidden = True ElseIf Range("B6").Value = "" Then Range("DataYes").EntireRow.Hidden = True Range("DataNo").EntireRow.Hidden = True End If Case "$Q$6" If Range("Q6").Value = "TRUE" Then Range("CrComments").EntireRow.Hidden = False ElseIf Range("Q6").Value = "FALSE" Then Range("CrComments").EntireRow.Hidden = True End If End Select End Sub
至于你原来的问题,它不应该改变任何东西。
你能提供更多的信息吗?