我正在Excel上创建一个用户表单,我想隐藏和取消隐藏整行,具体取决于数据验证列表,从1到4.(单元格M5中的数据验证)
这是我想要做的: 如果在M5中选择了数字1,我想隐藏行9:11和17:20 如果在M5中选择了数字2,我想隐藏行10:11和18:20 如果在M5中选择了数字3,我想隐藏第11行和第20行
我要隐藏的所有行都包含E列中的日期选择器选项。(如果必须,我很乐意删除日期选择器选项)
我真的很感谢你的帮助。
谢谢大家。 一个
答案 0 :(得分:1)
您可以通过在VBE
中的工作表对象中放置这样的内容来使用工作表更改事件Sub worksheet_change(ByVal target As Range)
If Not Intersect(target, Range("M5")) Is Nothing Then
ActiveSheet.Rows("9:20").EntireRow.Hidden = False
If target = 1 Then
ActiveSheet.Rows("9:11").EntireRow.Hidden = True
ActiveSheet.Rows("17:20").EntireRow.Hidden = True
ElseIf target = 2 Then
ActiveSheet.Rows("10:11").EntireRow.Hidden = True
ActiveSheet.Rows("18:20").EntireRow.Hidden = True
ElseIf target = 3 Then
ActiveSheet.Rows(11).EntireRow.Hidden = True
ActiveSheet.Rows(20).EntireRow.Hidden = True
ElseIf target = 4 Then
End If
End If
End Sub
它会检查更改是否在您的验证中,然后检查该值,隐藏它应隐藏的内容。我首先取消隐藏所有内容,因此您不必担心更改值后仍隐藏的内容。
确保它在您想要发生的工作表的工作表模块中 -