【发布时间】:2019-02-12 20:37:42
【问题描述】:
我已成功使用此代码作为倒数计时器,但 它失败 作为 倒数计时器。我明白了
错误 1004 应用程序定义对象定义错误
在行中
Cell.Value = CountDown - (Timer - Start - 86400 * (Start > Timer)) / 86400
我认为它与零相乘。
我知道代码可以与 Cell.Value = CountDown - TimeSerial(0, 0, Timer - Start) 一起使用,但我不能使用它,而 TimeSerial 是一个 Variant(integer),这意味着代码只能在几秒钟内完成 32767 次计数,然后才会停止在 溢出错误。
有没有人知道如何解决下面代码中的错误 1004 问题。
Option Explicit
Sub NewTimer() 'Countdown timer
Dim Start As Long
Dim Cell As Range
Dim CountDown As Date
Start = Timer
Set Cell = Sheet1.Range("B1") 'This is the starting value.
CountDown = TimeSerial(0, 0, 10) 'Set takttime
Cell.Value = CountDown
Do While Cell.Value > 0
Cell.Value = CountDown - (Timer - Start - 86400 * (Start > Timer)) / 86400
DoEvents
Loop
End Sub
【问题讨论】:
-
你想用
(Start > Timer)做什么,这将导致True(转换为-1)或False(转换为0)。你能解释一下你的尝试是什么吗? -
@Peh 有了
(Start > Timer),我将避免计数器在午夜发生故障。 -
您能解释一下您的计时器应该如何计数吗?你的计算完全不清楚。 • 你明白我在第一条评论中写的内容吗?
-
@PEH 我是新手,我会将您链接到我之前的问题,其中计算来自 [链接] stackoverflow.com/questions/54212631/… - 是的,我了解
True或 @987654333 的评估@ 并且它在 Count UP Timer 中用于在链接中计算到午夜。如果倒数计时器将经过午夜,我不确定在计算中是否需要它。 -
奇怪我无法重现您的问题。代码运行良好。尝试使用
CLng(Start > Timer)将布尔值显式转换为数字。如果这没有帮助,那么肯定有其他问题。您有任何名为Timer的子/功能吗?如果是这样,请重命名!
标签: excel vba countdowntimer