使用VBA来隐藏/取消隐藏表中的列(命名区域)根据在另一个单独的单元格中进行的select

我在Sheet1上有一个select条件单元格,并在Sheet2上有一个表格。Sheet1单元格B3将有一个下拉菜单,其中有不同的选项。 我希望能够在此下拉列表中进行select,从而隐藏/取消隐藏Sheet2中的表中的某些列。 到目前为止,我下面的代码是基于select正在作为表在同一张表,我卡住的代码不工作,因为我期望它。

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 

我使用公式部分指定的命名范围。 “Months”在列G中,“Fruits”在列I中,但是代码当前隐藏了列G,H和I,而不是列G和列I.此外,每当我尝试将select标准移动到单独的表,我得到错误。 任何帮助或build议,将不胜感激。

您的范围select不正确。 而不是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已经解决了你的问题。