簡體   English   中英

根據行值隱藏/取消隱藏列

[英]Hide/unhide a column based on a row value

如果從 B 列的下拉列表中選擇了“相機軸檢查”值,我需要取消隱藏 E 列。我已經通過各種 Google 搜索,這是我想出的代碼,我認為會符合我的要求:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Columns("E:E").EntireColumn.Hidden = [B7:B999] = "Camera AXIS check"
End Sub

但是,每當我嘗試檢查它時,它都不喜歡第 3 行。

有人可以告訴我 go 哪里錯了嗎?

為了提供有關該任務的更多詳細信息,B 列具有第 7 行的這些選擇,並且可以將它們設置為無限數量的行,而 E 列僅適合顯示,只要 B 列中的選擇等於“相機軸檢查” ”。

這是完成您需要的適當 VBA 宏:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = "Camera AXIS check" And Target.Column = 2 Then
    Columns("E").EntireColumn.Hidden = True
        Else
        Columns("E").EntireColumn.Hidden = False
    End If
End Sub

如果我正確理解評論,如果“相機軸檢查”在“B”列中的任何位置,該列應該保持不隱藏。 下面的 sub 與上面的相同,但也測試您要查找的值是否在列中的任何位置,如果是,則不重新隱藏列。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = "Camera AXIS check" And Target.Column = 2 Then
    Columns("E").EntireColumn.Hidden = False
        Else
        If IsError(Application.Match("Camera AXIS check", Range("B:B"), 0)) Then
            Columns("E").EntireColumn.Hidden = True
        End If
    End If
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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