我有一部分代码:
If IsDate(cf1) Then
cf1str = CStr(cf1)
cf1str = Trim(cf1str)
chk1 = Format(cf1, "dd-mm-yyyy hh:mm:ss")
If cf1str <> chk1 Then
MsgBox "message"
Ws.Cells(i, c1).Select
Selection.Activate
Exit Sub
End If
Else
MsgBox ""
Ws.Cells(i, c1).Select
Selection.Activate
Exit Sub
End If
我在这里要做的是,我想检查日期是否有效并且格式为“dd-mm-yyyy hh-mm-ss”。现在,当我将日期作为字符串进行比较时,我想确保没有由于前导或尾随空格而导致的不匹配。我尝试使用ltrim
, trim
, rtrim
,但我发现列中有前导空格。结果,我收到一条错误消息,指出日期格式不正确。这会在代码用户之间造成混淆,因为错误是什么,即使他们看到单元格中的日期格式相同。Val()
我试图通过函数将字符串更改为值然后检查它们来摆脱这种情况,但徒劳无功。有什么解决办法吗?
另外如何摆脱不需要的字符\n
,例如trim
可能无法根除的字符?因为在一个单元格中,我甚至可以看到日期完全符合我想要的顺序,没有任何空格,它仍然显示错误消息。