Excel VBA“取消隐藏行”在取消隐藏时更改范围的顺序

时间:2018-10-11 07:18:23

标签: excel vba range

我正在使用以下宏通过按按钮逐步取消隐藏行。但是,它有时会更改我的范围的顺序。因此,有时它会先取消隐藏“ 31:34”,有时我会首先看到“ 43:46”或“ 39:42”或“ 35:38”。问题出在哪里?如果我总是有4行要逐步取消隐藏,那么使用不同的宏代码会更好吗?我有两种情况,当我从顶部开始取消隐藏行时,另一种情况是当我通过单击按钮开始从底部取消隐藏行时。那就是为什么我在范围内使用宏。

Sub UnhideEducation()
Static counter As Byte

    counter = (counter + 1) Mod 5

    Select Case counter
        Case 1
            Rows("31:34").EntireRow.Hidden = False
        Case 2
            Rows("35:38").EntireRow.Hidden = False
        Case 3
            Rows("39:42").EntireRow.Hidden = False
        Case 4
            Rows("43:46").EntireRow.Hidden = False
        Case 5
            Rows("43:46").EntireRow.Hidden = False
    End Select
End Sub

1 个答案:

答案 0 :(得分:1)

如何像下面这样简单一些,并为每个按钮有一个单独的代码,不仅隐藏/隐藏,还可以隐藏/取消隐藏

enter image description here

Sub Unhideyellow()
            Rows("34:40").EntireRow.Hidden = Not Rows("34:40").EntireRow.Hidden
End Sub
Sub UnhideGrey()
            Rows("41:46").EntireRow.Hidden = Not Rows("41:46").EntireRow.Hidden
End Sub