Сокрытие и скрытие рядов - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть код для скрытия и отображения строк в листе 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 голосов
/ 26 февраля 2019

Кажется, вместо counter2 = (counter2 + 1) Mod 5, вы хотите сделать counter2 = (counter2 Mod 4) + 1

Если вы определите число по модулю 5, ожидается, что оно сгенерирует 5 шагов.
Установка переменной по модулю 4 изатем добавление 1 к нему сделает цикл от 1 до 4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...