【发布时间】:2017-10-11 07:01:33
【问题描述】:
我有一个包含 5 张工作表的工作簿:Sheet1、Sheet2、Sheet3、Sheet4、Sheet5。第一个工作表:“工作表”有一个单元格:“C3”,下拉菜单有 4 个不同的选项:Opt1、Opt2、Opt3、Opt4。 根据在此下拉菜单中选择的内容,我希望将不同的列实时隐藏在各个工作表中。如果没有输入任何内容,我不想隐藏任何列。
我输入了下面的部分代码,但我认为存在问题,因为我选择了要隐藏的重叠列 - 不完全确定。
此外,我想隐藏特定行以及下面的列,具体取决于您在下拉菜单中选择的不同选项。
另外,我将在所有 Sheets1-5 中复制隐藏相同的列。
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C3").Value = "Opt1" Then
Sheets("Sheet1").Columns("G:L").EntireColumn.Hidden = True
Sheets("Sheet1").Columns("N:T").EntireColumn.Hidden = True
Else
Sheets("Sheet1").Columns("G:L").EntireColumn.Hidden = False
Sheets("Sheet1").Columns("N:T").EntireColumn.Hidden = False
End If
If Range("C3").Value = "Opt2" Then
Sheets("Sheet1").Columns("B:F").EntireColumn.Hidden = True
Sheets("Sheet1").Columns("N:T").EntireColumn.Hidden = True
Else
Sheets("Sheet1").Columns("B:F").EntireColumn.Hidden = False
Sheets("Sheet1").Columns("N:T").EntireColumn.Hidden = False
End If
If Range("C3").Value = "Opt3" Then
Sheets("Sheet1").Columns("B:M").EntireColumn.Hidden = True
Else
Sheets("Sheet1").Columns("B:M").EntireColumn.Hidden = False
End If
If Range("C3").Value = "Opt4" Then
Sheets("Sheet1").Columns("B:AB").EntireColumn.Hidden = True
Else
Sheets("Sheet1").Columns("B:AB").EntireColumn.Hidden = False
End If
End Sub
【问题讨论】:
-
您能否开始将范围内的所有列在子( Sheets("Sheet1").Columns("B:AB").EntireColumn.Hidden = False) 开始时不隐藏,然后仅添加之后你的代码的if(不是else)部分?这意味着只有针对测试条件的指定列将被隐藏。