我需要取消隐藏E列,以防从B列的下拉列表中选择“摄像机AXIS检查”值。我经历了各种Google搜索,这就是我想到的代码,我认为符合我的要求:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Columns("E:E").EntireColumn.Hidden = [B7:B999] = "Camera AXIS check"
End Sub
但是,每当我尝试对其进行检查时,它都不喜欢第3行。
有人可以告知我哪里出了问题吗?
要提供有关该任务的更多详细信息,B列具有来自第7行的这些选择,并且最多可以具有无限数量的行,而E列仅适合于显示,只要B列中的选择等于“相机AXIS检查”。
答案 0 :(得分:1)
这是完成您所需的适当VBA宏:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "Camera AXIS check" And Target.Column = 2 Then
Columns("E").EntireColumn.Hidden = True
Else
Columns("E").EntireColumn.Hidden = False
End If
End Sub
如果我正确理解了注释,那么如果“摄像机AXIS检查”在“ B”列中的任何位置,则该列应保持隐藏状态。以下子功能与上面的功能相同,但是还测试了您要查找的值是否在列中的任何位置,如果不存在,则不会重新隐藏该列。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "Camera AXIS check" And Target.Column = 2 Then
Columns("E").EntireColumn.Hidden = False
Else
If IsError(Application.Match("Camera AXIS check", Range("B:B"), 0)) Then
Columns("E").EntireColumn.Hidden = True
End If
End If
End Sub