首页 > 解决方案 > Excel VBA“取消隐藏行”在取消隐藏时更改范围的顺序

问题描述

我正在使用以下宏通过按下按钮逐步取消隐藏行。然而,它偶尔会改变我的范围的顺序。所以有时它会首先隐藏“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

标签: excelvbarange

解决方案


像下面这样更简单的东西怎么样,每个按钮都有一个单独的代码,可以隐藏/取消隐藏,而不仅仅是隐藏!,

在此处输入图像描述

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

推荐阅读