我正在编写一个宏来检查日期的格式。对于此过程,日期必须采用以下格式: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