[英]Formula to hide rows based on the value of a cell
我有一个工作表,其中包含所有经理及其雇员的姓名,理想情况下,该工作表需要工作的方式是在左上角有一个下拉列表,当经理选择他们的姓名时,所有没有他们姓名的行反对,被隐藏,因此只显示他们的团队。
我知道自动筛选并让他们选择名称是最简单的方法,并且是一个很好的选择,但是我希望有一种方法可以使用VBA或公式来隐藏行而不是隐藏行团队在下拉菜单中选择自己的名字时。 当我试图创建一个非常光滑且看起来不错的东西时
我确实尝试过做一些事情,以使辅助单元格在名称匹配时显示真假,但是此时有点卡住了。 尝试使用下面的代码,但实际上并没有执行任何操作。 列TRUE / FALSE的列在A列中
Sub TEST()
Dim cell As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
For Each cell In Range("A4:A34")
If cell.Value = "FALSE" Then
cell.EntireRow.Hidden = True
Else
cell.EntireRow.Hidden = False
End If
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
任何不使用自动过滤器就可以做到这一点的想法都很棒
给定以下假设:
将以下代码放入数据表的Worksheet
模块,并更改假设以适合您的数据集。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" and Target.Cells.Count = 1 Then
Application.ScreenUpdating = False
Range("A5:A1000").EntireRow.Hidden = False
Dim mgrList as Range
Set mgrList = Range(Range("A5"),Range("A5").End(xlDown))
Dim mgrCheck as Range
For each mgrCheck in mgrList
mgrCheck.EntireRow.Hidden = mgrCheck <> Target
Next
End If
End Sub
使用if then else语句和显示/隐藏您要显示的行的调用。
If Range("A1").Value = "John Snow" Then
Call Show_John_Snow
Else
If Range("A1").Value = "Daenerys Targaryen" Then
Call Show_Daenerys
Else....
“子程序
Show_John_Snow
Rows("17:20").EntireRow.Hidden = True 'hide others
Rows("21:53").EntireRow.Hidden = False 'show John Snow
Rows("54:75").EntireRow.Hidden = True 'hide others
我有此数据,其中头位于A3:D3,数据从第4行到99开始。
我尝试应用自动过滤器,请检查该过滤器是否适合您。
Sub test()
Range("A3:D3").Select
Selection.AutoFilter
ActiveSheet.Range("A3:D99").AutoFilter Field:=2, Criteria1:="0"
ActiveSheet.Range("A3:D99").AutoFilter Field:=2, Criteria1:="1"
End Sub
在这里,我从字段2的下拉过滤器中选择了名为“ 0”的选项,即范围A4,并且正如您所告知的,其他单元格将自动隐藏,并且仅对应于该条件的单元格才可见。
我也尝试了其他选项“ 1”。
这似乎是一种非常困难或复杂的方法,我必须向学生展示他们的成绩,而又不会看到其他学生的成绩。
因此,一张纸具有所有数据,在“前”纸上,我使用index()和match()调用特定学生的相关数据。 每个学生都有一个输入的ID号,然后为了确认姓名,返回了姓名,然后返回了相关的成绩。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.