1

我不断收到以下代码的类型不匹配错误,我不知道为什么。当调试器给我这个错误,我按下继续,它会继续前进。所以看起来代码有效。那么为什么首先抛出这个错误呢?!

Sub Record()

    ' ...
    Application.OnTime Now + TimeValue("00:00:" & (60 - Second(Now))), "Record"
    ' ...

End Sub

编辑:

修复了冒号,但问题仍然存在。问题是“00:00:60”不是有效数字,因为您不能有 60 秒。它应该是“00:01:00”。

4

1 回答 1

4

您在 00:00 后错过了冒号:

Application.OnTime Now + TimeValue("00:00:" & (60 - Second(Now))), "Record"

它不会导致“类型不匹配”错误,但它会使您的函数以意想不到的方式工作。


您所说的错误出现在Second(Now) = 0.

在这种情况下,表达式TimeValue("00:00:" & (60 - Second(Now)))返回“00:00:60”,这不是正确的时间格式。

这是解决此问题的方法:

Application.OnTime Now + TimeSerial(0, 0, 60 - Second(Now)), "Record"
于 2015-07-29T12:54:57.730 回答