隐藏和取消隐藏行

时间:2019-02-26 12:39:50

标签: excel vba

我有用于隐藏和取消隐藏Excel工作表中的行的代码。它工作正常,但是存在问题。

我有几个部分,分别是:46:42、41:37、36:32和31:27。

我想逐步隐藏它们,因此在单击一次按钮46:42之后将其隐藏,第二次单击41:37,第三次单击36:32,第四次单击31:27。

我当前的代码取消隐藏一切正常,但是在第五次单击时突然取消隐藏48:51。有什么问题吗?

Public counter2 As Long

'Unhide step by step on each click

Sub UnhideEducation()

    Dim RngTxt As String, RngAR() As String, ThisRng As String

    counter2 = (counter2 + 1) Mod 5

    ThisRng = "" & (47 - (counter2 * 5)) & ":" & (47 - (counter2 * 5) + 4)

    Application.ScreenUpdating = False
    ThisWorkbook.Sheets("Filling form").Unprotect
    ThisWorkbook.Sheets("Filling form").Rows(ThisRng).EntireRow.Hidden = False
    ThisWorkbook.Sheets("Filling form").Protect
    Application.ScreenUpdating = True
End Sub

'Hide everything set counter2to 0

Sub HideEducation()
Application.ScreenUpdating = False
ThisWorkbook.Sheets("Filling form").Unprotect
Rows("27:46").EntireRow.Hidden = True
counter2 = 0
ThisWorkbook.Sheets("Filling form").Protect
Application.ScreenUpdating = True
End Sub

1 个答案:

答案 0 :(得分:3)

您似乎想oauth2/authorize而不是counter2 = (counter2 + 1) Mod 5

如果您定义模数为5的数字,则预计它将生成5步。
设置模4的变量,然后加1将使其从1循环到4。