如何在仍可以更改工作表中的值的情况下在vba excel中执行Do Event计时器?

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

我有一个计时器,我正在通过DoEvents功能积极运行。问题是每30秒我想手动将一些温度值放在我的工作表中。但是,如果我在事件运行时这样做,我得到:

运行时错误“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
excel vba timer doevents
1个回答
0
投票

我想到了!

如果我只是在接下来的错误恢复上,那么它运行良好,足以满足我的需求。

© www.soinside.com 2019 - 2024. All rights reserved.