[英]Excel Autohide/Unhide rows based on Cell Value
我有一个excel表格,如果单元格B22中的值等于或大于25000,我希望隐藏第43至49行。
到目前为止,我已经有了这段代码,但似乎只是使excel崩溃了,我不得不退出它。
Private Sub Worksheet_Calculate()
Rows("43:49").EntireRow.Hidden = False
Select Case Range("B22").Value
Case Is >= 25000
Rows("43:49").EntireRow.Hidden = True
Case Else
Rows("43:49").Select
Selection.EntireRow.Hidden = False
End Select
End Sub
不要使用Worksheet_Calculate
。 使用Worksheet_Change
请参阅此示例。 在这里移动Worksheet_Change
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Whoa
'~~> Change CountLarge to Count if using xl2003
If Target.Cells.CountLarge > 1 Then Exit Sub
Application.EnableEvents = False
If Not Intersect(Target, Range("B22")) Is Nothing Then
Select Case Target.Value
Case Is >= 25000: Rows("43:49").EntireRow.Hidden = True
Case Else: Rows("43:49").EntireRow.Hidden = False
End Select
End If
Letscontinue:
Application.EnableEvents = True
Exit Sub
Whoa:
MsgBox Err.Description
Resume Letscontinue
End Sub
您也可以尝试以下方法:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$22" Then
If Target.Value >= 25000 Then Rows("43:49").EntireRow.Hidden = True
If Target.Value < 25000 Then Rows("43:49").EntireRow.Hidden = False
End If
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.