簡體   English   中英

根據單元格的值隱藏行的公式

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

任何不使用自動過濾器就可以做到這一點的想法都很棒

給定以下假設:

  • 帶有經理名稱的下拉列表位於單元格A1中
  • 每行的列列表管理器名稱在A列中
  • 數據集從第5行開始
  • 列A是連續的,沒有空格

將以下代碼放入數據表的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM