如何根据几个条件中的任何一个取消隐藏行?



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

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

例如,如果表格中填写了第 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
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

先检查@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

只需将工作表(1(自定义到您的工作簿即可。

相关内容

最新更新