在没有 currentStage 的情况下取消隐藏四行块

问题描述 投票:0回答:1

我是编码初学者,特别是 VBA 初学者。我有一个 Excel 文档,其中隐藏了几行。我需要取消隐藏行 34:37、42:45、50:53、58:61,一次四行一组,直到它们全部取消隐藏。我有一个由形状制成的按钮。

目前,我将

currentStage
函数应用于代码,但它适得其反,因为我不希望代码隐藏行,只取消隐藏。

这是现在的代码:

Sub UnhideObjectives()
Static currentStage As Integer

    With ActiveSheet
        .Rows("34:37").EntireRow.Hidden = False
        .Rows("42:45").EntireRow.Hidden = (currentStage < 1)
        .Rows("50:53").EntireRow.Hidden = (currentStage < 2)
    End With

currentStage = (currentStage + 1) Mod 3
End Sub

谢谢你。

excel vba show
1个回答
0
投票

在一次操作中取消隐藏所有行:

Sub UnhideObjectives()
    ActiveSheet.range("A34:A37,A42:A45,A50:A53").EntireRow.Hidden = False
End Sub

编辑:好的我明白你的意思

Sub UnhideObjectives()
    Dim rng As Range
    For Each rng In ActiveSheet.Range("A34:A37,A42:A45,A50:A53").Areas
        If rng.EntireRow.Hidden Then     'is this block hidden?
            rng.EntireRow.Hidden = False 'unhide
            Exit For                     '...and stop looping
        End If
    Next rng
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.