Excel 如何根据以下任一条件取消隐藏行?

Excel 如何根据以下任一条件取消隐藏行?,excel,vba,Excel,Vba,IF函数检查表中所选列的任何行中的单元格是否已填充,例如第1列、第1行、第2行和第3行-如果已填充任何单元格,则取消隐藏其他行 该函数在填写表格时起作用,但仅在从表格中删除某些内容时起作用 e、 g.如果表格中填写了第1列中的所有第1、2和3行,则会出现其他行。如果删除其中一个单元格值,例如第1列第1行,则会再次隐藏额外的行。取消隐藏的标准仍然存在,第2行和第3行仍然填写 Private Sub Worksheet_Change(ByVal Target As Range) If

IF函数检查表中所选列的任何行中的单元格是否已填充,例如第1列、第1行、第2行和第3行-如果已填充任何单元格,则取消隐藏其他行

该函数在填写表格时起作用,但仅在从表格中删除某些内容时起作用

e、 g.如果表格中填写了第1列中的所有第1、2和3行,则会出现其他行。如果删除其中一个单元格值,例如第1列第1行,则会再次隐藏额外的行。取消隐藏的标准仍然存在,第2行和第3行仍然填写

Private Sub Worksheet_Change(ByVal Target As Range)    
    If Target.Column = 2 And Target.Row = 90 Then    
        If Target.Value = "" Then    
            Application.Rows("94:101").Select   
            Application.Selection.EntireRow.Hidden = True    
            Else: [94:101].EntireRow.Hidden = False    
        End If    
    End If

    If Target.Column = 2 And Target.Row = 91 Then    
        If Target.Value = "" Then    
            Application.Rows("94:101").Select    
            Application.Selection.EntireRow.Hidden = True    
            Else: [94:101].EntireRow.Hidden = False    
        End If    
    End If

    If Target.Column = 2 And Target.Row = 92 Then    
        If Target.Value = "" Then    
            Application.Rows("94:101").Select    
            Application.Selection.EntireRow.Hidden = True    
            Else: [94:101].EntireRow.Hidden = False    
        End If    
    End If    
End Sub
首先检查@PEH注释。 遵循您的理念,尝试以下方法:

Private Sub Worksheet_Change(ByVal Target As Range)    

With WorkSheets(1)
    If (.Range("B90").Value2 <> "") Or (.Range("B91").Value2 <> "") Or _
                       (.Range("B92").Value2 <> "") Then    
        If Target.Value = "" Then    
            .Rows("94:101").EntireRow.Hidden = True    
        Else
            .Rows("94:101").EntireRow.Hidden = False    
        End If    
    End If  
End With  
End Sub
Private子工作表\u更改(ByVal目标作为范围)
附工作表(1)
如果(.Range(“B90”).Value2”或(.Range(“B91”).Value2”)或_
(.Range(“B92”).Value2“”)然后
如果Target.Value=”“,则
.Rows(“94:101”).EntireRow.Hidden=True
其他的
.Rows(“94:101”).EntireRow.Hidden=False
如果结束
如果结束
以
端接头

只需将工作表(1)自定义到工作簿中。

您可能会从阅读中受益。@Reh感谢您的帮助。我一定会浏览链接中提到的信息。大卫,谢谢你的回复!这段代码看起来确实更好更专业。然而,仍然存在同样的问题。e、 g.如果我在第90行和第91行中放置了一些内容,则会出现94:101。但是如果我删除例如90(91保持不变,因此94:101也应该保持不变)-94:101再次隐藏…好的。根据您的情况,只要B90、B91或B92上的某个值为“”,则所有内容都将隐藏。所以问题在于代码。你到底想要什么?如果所有单元格都有一个值,它将工作,如果一个单元格没有值(“”),则所有内容都将隐藏。这就是你的意图?有订单吗?我的意思是,如果B90是“”,但B91和/或B92有任何值,那么应该显示所有内容?我希望它按如下方式工作:如果B90、B91或B92中至少有一个不是“”->94:101。如果它们都是空的->94:101是隐藏的。我已经根据我的表调整了它-将Target.Row更改为Target.Column,反之亦然-效果非常好。非常感谢你!
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 2 And (Target.Column = 90 Or Target.Column = 91 Or Target.Column = 92) Then
        If Range("B90") = "" And Range("B91") = "" And Range("B92") = "" Then
            Range("A94:A101").EntireRow.Hidden = True
        Else
            Range("A94:A101").EntireRow.Hidden = False
        End If
    End If
End Sub