Excel自动隐藏/取消隐藏基于单元格值的行

我有一个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