簡體   English   中英

使用VBA根據在不同工作表的單獨單元格中所做的選擇來隱藏/取消隱藏表中的列(命名范圍)

[英]Use VBA to hide/unhide columns (named ranges) in a table based on selection made in a separate cell on a different sheet

我在Sheet1上有一個選擇條件單元格,在工作表2上有一個表。工作表1單元格B3將有一個帶有不同選項的下拉列表。 我希望能夠在此下拉列表中進行選擇,這將相應地隱藏/取消隱藏Sheet2表格中的某些列。 到目前為止,我下面的代碼基於與表在同一張紙上所做的選擇,由於代碼無法按我期望的那樣工作,因此我陷入了困境。

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 2 And Target.Row = 3 And Target.Value = "CustomView" Then

Range("Fruits", "Months").Select

Application.Selection.EntireColumn.Hidden = True

Else

Range("Fruits", "Months").Select


Application.Selection.EntireColumn.Hidden = False

End If

End Sub

我使用公式部分指定了命名范圍。 “月”在G列中,“水果”在I列中,但是代碼當前隱藏了G,H和I列,而不僅僅是G和I列。此外,每次我嘗試將選擇標准移至a單獨的工作表,我得到了錯誤。 任何幫助或建議,將不勝感激。

您的范圍選擇不正確。 代替Range("Fruits", "Months").Select您需要改為Range("Fruits, Months").Select

我想提出一個重新編寫的方法,以幫助您簡化此代碼的可讀性和可維護性。

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$B$3" Then 
        Range("Fruits,Months").EntireColumn.Hidden = Target.Value = "CustomView"
    End If

End Sub

需要明確的是,這不應被標記為答案,因為tigeravatar已經解決了您的問題。

暫無
暫無

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

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