Excel 用VBA实现单元格的隐藏

Excel 用VBA实现单元格的隐藏,excel,hide,vba,Excel,Hide,Vba,我使用以下代码在Excel VBA中隐藏所需的单元格 Private Sub Worksheet_Change(ByVal Target As Range) Dim Cell As Range Set Cell = Range("$F$26") If Not Application.Intersect(Cell, Range(Target.Address)) Is Nothing Then If Range("F26").Value < 2 Th

我使用以下代码在Excel VBA中隐藏所需的单元格

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cell   As Range
    Set Cell = Range("$F$26")
    If Not Application.Intersect(Cell, Range(Target.Address)) Is Nothing Then
        If Range("F26").Value < 2 Then
            Rows("39:61").EntireRow.Hidden = True
            ElseIf Range("F26").Value < 3 Then
            Rows("47:61").EntireRow.Hidden = True
            ElseIf Range("F26").Value < 4 Then
            Rows("55:61").EntireRow.Hidden = True
            Else: Rows("39:61").EntireRow.Hidden = False
        End If
    End If
End Sub
Private子工作表\u更改(ByVal目标作为范围)
暗淡单元格作为范围
设置单元格=范围($F$26”)
如果不是Application.Intersect(单元格,范围(Target.Address))则为空
如果范围(“F26”)。值小于2,则
行(“39:61”).EntireRow.Hidden=True
ElseIf范围(“F26”)。然后值<3
行(“47:61”).EntireRow.Hidden=True
ElseIf范围(“F26”)。值小于4
行(“55:61”).EntireRow.Hidden=True
Else:Rows(“39:61”).EntireRow.Hidden=False
如果结束
如果结束
端接头
当我将值按降序排列(如4、3、2、1)时,它可以完美地工作。但在放1之后,如果我计划切换到2或3(但不是4)。然后它不会显示第二和第三面板组中的单元格。但如果我放4,它会再次显示所有面板组。我附上了下面的截图


您必须从头开始使用范围(“F$26”)内的新值重新评估后续呼叫;e、 g.让一切可见,然后决定隐藏什么

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Range("F26"), Range(Target.Address)) Is Nothing Then
        Application.ScreenUpdating = False
        Rows("39:61").EntireRow.Hidden = False
        Select Case Range("F26").Value
            Case Is < 2
                Rows("39:61").EntireRow.Hidden = True
            Case 2
                Rows("47:61").EntireRow.Hidden = True
            Case 3
                Rows("55:61").EntireRow.Hidden = True
        End Select
        Application.ScreenUpdating = True
    End If
End Sub
Private子工作表\u更改(ByVal目标作为范围)
如果不是Application.Intersect(Range(“F26”),Range(Target.Address))则什么都不是
Application.ScreenUpdating=False
行(“39:61”).EntireRow.Hidden=False
选择案例范围(“F26”)。值
病例<2例
行(“39:61”).EntireRow.Hidden=True
案例2
行(“47:61”).EntireRow.Hidden=True
案例3
行(“55:61”).EntireRow.Hidden=True
结束选择
Application.ScreenUpdating=True
如果结束
端接头
我已将您的条件评估更改为a,并根据需要删除了
单元格
变量

当范围(“F26”)为空时,我找不到任何意外情况。目前,这属于
<2
条件