【发布时间】:2020-01-17 19:36:14
【问题描述】:
我正在尝试根据 2 个不同的单元格值隐藏行。我在单元格 B2 中有一个值,想隐藏 B5:B1000 中不符合条件的任何内容。我在单元格 D2 中还有一个值可以进一步排序,并希望隐藏 D5:D1000 中与 D2 中的条件不匹配的任何内容。如果用户在 B2 或 D2 中输入“全部”,则更复杂的是,我想取消隐藏它们各自的行。我发现 VBA 可以基于 B2 隐藏,但我正在调整代码以查看 D2。
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Activate
If Not Application.Intersect(Range("B2"), Range(Target.Address)) Is Nothing Then
Select Case Target.Value
Case Is = "All": Rows("5:1000").EntireRow.Hidden = False
Case Is <> "All": Rows("5:1000").EntireRow.Hidden = False
For rownum = "5" To "1000"
If Cells(rownum, 2).Value <> Range("B2") And Cells(rownum, 4).Value <> Range("D2") Then
Cells(rownum, 2).EntireRow.Hidden = True
Cells(rownum, 4).EntireRow.Hidden = True
End If
Next rownum
End Select
End If
End Sub
【问题讨论】:
-
AutoFilter怎么样。或者被过滤掉的行不是你想要的?我猜当您将VisibleDropDown指定为False时,您不会注意到它已被过滤