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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在仍可以更改工作表中的值的情况下在vba excel中执行Do Event计时器?相关的知识,希望对你有一定的参考价值。

我有一个计时器,我正在通过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
答案

我想到了!

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

以上是关于如何在仍可以更改工作表中的值的情况下在vba excel中执行Do Event计时器?的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA如何填充不同工作表中的值

vba 如何在不更改值的情况下自定义格式单元格

如何使用 VBA 模块计算新工作表中输出中的重复值

如何在不使用 VBA 的情况下在 Excel 中转换 HEX 和 DEC 之间的大数字?

如何使用 VBA 根据活动工作表中的单元格自动填充 Excel 表单?

vba,如何从列表框中的工作表中删除过滤后的数据