[英]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.