我有一个包含5个工作表的工作簿:Sheet1,Sheet2,Sheet3,Sheet4,Sheet5。第一张:“Sheet”有一个单元:“C3”,带有一个下拉菜单,有4个不同的选项:Opt1,Opt2,Opt3,Opt4。 根据在此下拉菜单中选择的内容,我希望实时将不同的列隐藏在各种工作表中。如果没有输入,我不想隐藏任何列。Excel VBA根据另一个工作表中的不同单元格值实时隐藏不同的列
我已经输入了部分工作的下面的代码,但我认为存在一个问题,因为我选择了重叠的列来隐藏 - 不完全确定。
此外,我想隐藏特定的行以及下面的列,具体取决于您在下拉菜单中选择的不同选项。
此外,我将复制在所有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
你就可以开始将在范围内的所有列在子(表( “工作表Sheet1”)开始被取消隐藏列( “B:AB”)EntireColumn.Hidden。 = False),然后在你的代码中只添加if(而不是其他)部分?这意味着只有针对测试条件的指定列将被隐藏。 – QHarr