为什么我会收到 VBA 类型不匹配错误?
Why am I getting a VBA Type Mismatch Error?
我不断收到以下代码的类型不匹配错误,我不明白为什么。当调试器给我这个错误时,我按继续,它会按原样移动。所以看起来代码有效。那么为什么首先抛出这个错误呢?!
Sub Record()
' ...
Application.OnTime Now + TimeValue("00:00:" & (60 - Second(Now))), "Record"
' ...
End Sub
编辑:
修复了冒号,但问题仍然存在。问题是“00:00:60”不是有效数字,因为您不能有 60 秒。应该是“00:01:00”。
你在 00:00:
之后漏掉了冒号
Application.OnTime Now + TimeValue("00:00:" & (60 - Second(Now))), "Record"
它不会导致 'Type mismatch' 错误,但会使您的函数以意想不到的方式工作。
您所说的错误出现在Second(Now) = 0
时。
在这种情况下表达式 TimeValue("00:00:" & (60 - Second(Now)))
returns "00:00:60" 这不是正确的时间格式。
此问题的解决方法如下:
Application.OnTime Now + TimeSerial(0, 0, 60 - Second(Now)), "Record"
我不断收到以下代码的类型不匹配错误,我不明白为什么。当调试器给我这个错误时,我按继续,它会按原样移动。所以看起来代码有效。那么为什么首先抛出这个错误呢?!
Sub Record()
' ...
Application.OnTime Now + TimeValue("00:00:" & (60 - Second(Now))), "Record"
' ...
End Sub
编辑:
修复了冒号,但问题仍然存在。问题是“00:00:60”不是有效数字,因为您不能有 60 秒。应该是“00:01:00”。
你在 00:00:
之后漏掉了冒号Application.OnTime Now + TimeValue("00:00:" & (60 - Second(Now))), "Record"
它不会导致 'Type mismatch' 错误,但会使您的函数以意想不到的方式工作。
您所说的错误出现在Second(Now) = 0
时。
在这种情况下表达式 TimeValue("00:00:" & (60 - Second(Now)))
returns "00:00:60" 这不是正确的时间格式。
此问题的解决方法如下:
Application.OnTime Now + TimeSerial(0, 0, 60 - Second(Now)), "Record"