根据所选的数字隐藏和取消隐藏特定行。

时间:2015-07-16 16:02:56

标签: excel excel-vba userform vba

我正在Excel上创建一个用户表单,我想隐藏和取消隐藏整行,具体取决于数据验证列表,从1到4.(单元格M5中的数据验证)

这是我想要做的: 如果在M5中选择了数字1,我​​想隐藏行9:11和17:20 如果在M5中选择了数字2,我想隐藏行10:11和18:20 如果在M5中选择了数字3,我想隐藏第11行和第20行

我要隐藏的所有行都包含E列中的日期选择器选项。(如果必须,我很乐意删除日期选择器选项)

我真的很感谢你的帮助。

谢谢大家。 一个

1 个答案:

答案 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

它会检查更改是否在您的验证中,然后检查该值,隐藏它应隐藏的内容。我首先取消隐藏所有内容,因此您不必担心更改值后仍隐藏的内容。

确保它在您想要发生的工作表的工作表模块中 -

enter image description here