exceltypes不匹配错误时间标识子

我有一个小时,应该确定小时,并添加一个单元格的值在第二列中有一小时的相应行中的值。 所以例如,如果它的7点30分,我点击了button,它会在7点加1。 我的代码给了我一个types不匹配错误,当昨天它完美的工作。 我的代码如下:

Private Sub CommandButton1_Click() Sheets("Front End").Unprotect ("29745") h = Hour(Now) For Each c In range("B8:B20") If h = Hour(c) Then c.Offset(0, 3) = c.Offset(0, 3) + 1 Exit For End If Next c Sheets("Front End").Protect ("29745") Unload Me End Sub 

我不能为我的生活弄清楚代码有什么问题,昨天我写了它的时候整天工作。

任何帮助是极大的赞赏

这个错误很可能是由于Vba中的Hour()返回0-23表示一个24小时的时间尺度而引起的。 既然你已经说过你正在使用一个12小时的时间刻度,你应该用你的时间来使用Mod命令来添加到相应的小时。

此外,如果c.Offset(0,3)值不是数字,那么您将通过+ 1命令获得types不匹配错误。 解决这个问题的最简单的方法是改变这一行,说c.Offset(0,3) = CInt(c.Offset(0,3)) + 1 ,它将首先将单元格中的值转换为一个整数确保不会引发types不匹配错误

如果目标单元格c.Offset(0, 3)存在文本,则会尝试增加该值时会导致“types不匹配”错误。 检查您尝试更新的单元格是否包含任何文本,甚至空格。