使用VBA隐藏/取消隐藏表格中的列(命名范围),具体取决于在不同工作表上的单独单元格中进行的选择

时间:2017-11-15 21:30:00

标签: excel vba excel-vba

我在Sheet1上有一个选择标准单元格,并在Sheet 2上有一个表格。Sheet 1 Cell 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栏中," Fruits"在列I中,但代码当前隐藏了列G,H和I,而不仅仅是列G和列I.此外,每次我尝试将选择条件移动到单独的工作表时,我都会收到错误。任何帮助或建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

您的范围选择不正确。而不是Range("Fruits", "Months").Select而是需要Range("Fruits, Months").Select

答案 1 :(得分:0)

我想提出一个重写,它将帮助您简化此代码的可读性和可维护性。

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已经解决了你的问题。