这是我所拥有的。我使用包含 3 个值的下拉列表来隐藏列。每个值都有其唯一的特定列,当选择一个值时,我需要隐藏与其不关联的其他列。
我使用了以下代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Value
Case "Marine"
Columns("T:X").EntireColumn.Hidden = True
Columns("Z").EntireColumn.Hidden = True
Case "Inland"
Columns("S").EntireColumn.Hidden = True
Columns("U").EntireColumn.Hidden = True
Case Else
Columns("T:X").EntireColumn.Hidden = False
Columns("Z").EntireColumn.Hidden = False
Columns("S").EntireColumn.Hidden = False
Columns("U").EntireColumn.Hidden = False
End Select
End Sub
当我从下拉列表中选择值时,这是有效的,但一旦我单击工作表中的另一个单元格,隐藏的列就会重新出现。我希望能够在下拉列表中选择一个值,并使单元格保持隐藏状态,直到我在下拉列表中选择另一个值。谁能帮我这个?我尝试过使用WorkSheet_SelectionChange
但这行不通。
用 Target.Address 包装代码。
例如,下拉菜单位于单元格“B2”中,那么,
代码如下:
If Target.Address(True, True) = "$B$2" Then
Select Case Target.Value
Case "Marine"
Columns("T:X").EntireColumn.Hidden = True
Columns("Z").EntireColumn.Hidden = True
Case "Inland"
Columns("S").EntireColumn.Hidden = True
Columns("U").EntireColumn.Hidden = True
Case Else
Columns("T:X").EntireColumn.Hidden = False
Columns("Z").EntireColumn.Hidden = False
Columns("S").EntireColumn.Hidden = False
Columns("U").EntireColumn.Hidden = False
End Select
End If
此外,猜测你的代码的目的,我进一步调整了它。
简化版本如下所示:
If Target.Address(True, True) = "$B$2" Then
Select Case Target.Value
Case "Marine"
Columns("S:Z").EntireColumn.Hidden = False
Columns("T:X").EntireColumn.Hidden = True
Columns("Z").EntireColumn.Hidden = True
Case "Inland"
Columns("S:Z").EntireColumn.Hidden = False
Columns("S").EntireColumn.Hidden = True
Columns("U").EntireColumn.Hidden = True
Case Else
Columns("S:Z").EntireColumn.Hidden = False
End Select
End If
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)