Excel - петля автоматического рабочего листа - PullRequest
2 голосов
/ 10 апреля 2019

Я создаю электронную таблицу Excel для отображения диаграмм данных SQL, которые будут отображаться на мониторе в нашем машинном цехе.Электронная таблица имеет 45 вкладок, и мне нужно, чтобы электронная таблица переключалась между вкладками с интервалом 10 секунд на вкладку, а затем возвращалась на первую вкладку и повторяла цикл.

Я нашел макрос, который делает то, чтоМне нужен аналогичный вопрос на этом сайте ( Как я могу менять листы Excel с 5-секундным промежутком времени один за другим, используя VB-код макросом? ), однако я очень плохо знаком с VBA и не знаю, какчтобы сделать цикл кода бесконечно.

Любая помощь очень ценится!

Вот код VBA по ссылке (извините за странное форматирование):




Sub StartSlideShow()
    Application.OnTime Now + TimeValue("00:00:05"), "ShowNextSheet"
End Sub

Sub ShowNextSheet()
    Dim lastIndex As Integer, nextShtIndex As Integer

    lastShtIndex = Worksheets.Count
    nextShtIndex = ActiveSheet.Index + 1

    If nextShtIndex <= lastShtIndex Then
        Worksheets(nextShtIndex).Select
        StartSlideShow
    Else
        MsgBox "End of slide show"
    End If
End Sub

1 Ответ

3 голосов
/ 10 апреля 2019

Код, который вы используете в данный момент, проверяет, меньше ли индекс следующего листа (или равен) ли последний индекс рабочей книги.Если это не так (то есть вы просмотрели все свои листы), приложение закрывается.В вашем случае вы не хотите закрывать приложение, поэтому в случае, если индекс следующего листа больше, чем последний лист, просто выберите первый лист вручную и обновите код.

If nextShtIndex <= lastShtIndex Then
    Worksheets(nextShtIndex).Select
    StartSlideShow
Else
    Worksheets(1).Select
    StartSlideShow
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...