我一直在使用以下代码获得类型不匹配错误,但我无法弄清楚原因。当调试器给我这个错误时,我按下继续,它会按原样移动。所以看起来代码有效。那么为什么要首先抛出这个错误呢?!
Sub Record()
' ...
Application.OnTime Now + TimeValue("00:00:" & (60 - Second(Now))), "Record"
' ...
End Sub
编辑:
修正了冒号,但问题仍然存在。问题是" 00:00:60"不是有效数字,因为你不能有60秒。应该是" 00:01:00"。
答案 0 :(得分: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"