Как мне сделать таймер Do Event в vba excel, все еще имея возможность изменять значения в моей рабочей таблице? - PullRequest
2 голосов
/ 10 апреля 2019

У меня есть таймер, который я активно запускаю через функцию DoEvents.Проблема в том, что каждые тридцать секунд я хочу вручную помещать некоторые значения температуры в свой рабочий лист.Однако, если я делаю это во время работы события, я получаю:

Ошибка времени выполнения '1004': указанное измерение недопустимо для текущего типа диаграммы.

Некоторые мысли: я собирался отключить обновление экрана, но это не позволило бы мне увидеть изменение времени в реальном времени.

Не позволяет ли активное событие не работать в моем документе?И если так, есть ли способ обойти это?

Вот тело моего кода (у меня также есть подпрограмма для таймера остановки и сброса, но я не думаю, что это уместно):

Sub START_TIMER()
Dim sh As Worksheet
Set sh = ThisWorkbook.ActiveSheet

sh.Range("AI1").Value = "Start"

If sh.Range("AI2").Value = "" Then
sh.Range("AI2").Value = Now
sh.Range("AL2").Value = Now
End If

x:
VBA.DoEvents

If sh.Range("AI1").Value = "Stop" Then Exit Sub

sh.Range("AI3").Value = Now
sh.Range("AL3").Value = Now

    If sh.Range("AL4").Value > TimeValue("00:00:29") Then
        sh.Range("A17").Interior.Color = vbYellow
        sh.Range("AL2").Value = Now
        Beep

    Else
         sh.Range("A17").Interior.Color = vbWhite

    End If

GoTo x

If sh.Range("AL4").Value = "0:00:30" Then
    sh.Range("AL2").Value = Now
End If

End

End Sub

1 Ответ

0 голосов
/ 14 апреля 2019

Я понял это!

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

...