我试图将系统时间与存储在2个相邻单元格中的时间进行比较。我尝试了下面的时间比较,它只是工作正常...
* 此代码正常运行 * Sub btn_Click()
MsgBox Range("C4"), vbOKOnly, "Test"
Dim time1 As Date
Dim time2 As Date
time1 = Time
time2 = TimeValue(Cells(3, 1).Text)
If time1 < time2 Then
MsgBox str, vbOKOnly, "MsgIf"
Else
MsgBox str1, vbOKOnly, "MsgElse"
End If
End Sub
但这不起作用! If条件抛出错误,说“类型不匹配”。 请帮忙!!!
Dim i As Integer
Dim w As Integer
Dim tm1 As Date
Dim tm2 As Date
Dim tm3 As Date
tm1 = Time
For i = 2 To 31
tm2 = TimeValue(Cells(i, 1).Text)
tm3 = TimeValue(Cells(i, 2).Text)
If tm1 > tm2 & tm1 < tm3 Then ' this is the line that throws 'type mismatch' error
Exit For
End If
Next i
MsgBox Cells(i, w), vbOKOnly, "Test"
答案 0 :(得分:0)
为了SO,我会将答案(在评论中)作为答案(而不是评论)发布。 @Simoco或@Enderland,随意做同样的事情,我会删除我的答案。
VBA不使用&
运算符,也不使用|
。相反,它分别使用And
和Or
。
答案 1 :(得分:0)
这是:
VBA不使用&
运算符,也不使用|
。相反,它分别使用And
和Or
。
更改此
If tm1 > tm2 & tm1 < tm3 Then
到这个
If tm1 > tm2 And tm1 < tm3 Then
解决了Type Mismatch Error
谢谢@simoco和@enderland