使用VBA根据在不同工作表上的单独单元格中所做的选择来隐藏/取消隐藏表中的列(命名范围)



我在工作表 1 上有一个选择标准单元格,在工作表 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 列。此外,每次我尝试将选择标准移动到单独的工作表时,都会出错。任何帮助或建议将不胜感激。

您的范围选择不正确。 而不是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

需要明确的是,这不应该被标记为答案,因为虎头像已经解决了你的问题。

最新更新