VBA-VBA中用于检查格式的通配符



我正在编写一个宏来检查日期的格式。对于此过程,日期必须采用以下格式:DD-MM-JJJJ。如果用户使用其他格式,例如JJJJ-MM-DD,则工作流将退出。因此,我想构建一个宏,如果格式错误,它将在单元格中提供一个字符串。

目前我已经编写了以下宏,但它不起作用。有人能帮我写正确的宏吗?

Private Sub Worksheet_Activate()
dim ws as worksheet
set ws = Worksheets("Bugs")
if Worksheets("Data").Range("E14").Value = "**" & "-" & "**" & "-" & "****" Then
ws.range("B1").value = "Correct format"
Else
ws.range("B1").value = "Jou have used wrong format, please use DD-MM-JJJJ"
End if 
End sub

我希望有人能帮助我!如果有任何问题,请随时问我。

如果单元格没有明确格式化为文本,则应用程序会将日期条目视为Double类型的数字,但会根据所选的数字格式显示它们

因此,最简单的方法是通过比较确切的Numberformat属性,例如dd-mm-yyyy

If Sheet1.Range("E14").NumberFormat = "dd-mm-yyyy" Then ...

或通过的10/31 2021等日期

If Sheet1.Range("E14).NumberFormat = "mm/dd yyyy" Then ...
Private Sub Worksheet_Activate()
Dim ws As Worksheet

Set ws = Worksheets("Bugs")

If Worksheets("Data").Range("E14").Value Like "??/??/????" Then
ws.Range("B1").Value = "Correct format"
Else
ws.Range("B1").Value = "Jou have used wrong format, please use DD-MM-JJJJ"
End If

End Sub

最新更新