檢查單元格文字是否具有特定格式

檢查單元格文字是否具有特定格式

我正在尋找一種方法來確定輸入到Excel 單元格中的文字是否遵循以下格式:「0000/00/00」(0 可以是任何一位數字{0,1,2,3,4,5,6 , 7,8,9})。

有沒有辦法檢查儲存格的格式是否為「0000/00/00」?

我已經知道的事:

  • 我可以使用單元格資料驗證規則中的 DATEVALUE() 函數來檢查它,此方法的問題是它不接受 1001/04/07 作為有效日期。
  • 嘗試查看文字是否包含兩個“/”字元並且其長度是否等於 10 個字元。一些資料驗證公式,例如:"=OR(AND(LEN(A16)=10,(LEN(A16)-LEN(SUBSTITUTE(A16,"/",""))=2),NOT(FALSE))) " ,此驗證規則的問題在於它會接受「0550//0014」等有效條目。

PS:我在不允許使用巨集或擴充的環境中工作!

答案1

以下使用者定義函數將傳回真的如果參數具有正確的格式,否則錯誤的:

Option Explicit

Public Function FormatCheck(r As Range) As Boolean
    Dim s As String, s2 As String, arr, i As Long

    FormatCheck = False
    s = r(1).Text
    s2 = Replace(s, "/", "")

    If Len(s2) <> 8 Then Exit Function
    arr = Split(s, "/")

    If UBound(arr) <> 2 Then Exit Function
    If Len(arr(0)) <> 4 Then Exit Function
    If Len(arr(1)) <> 2 Then Exit Function
    If Len(arr(2)) <> 2 Then Exit Function

    For i = 1 To 8
        If Not Mid(s2, i, 1) Like "[0-9]" Then Exit Function
    Next i
    FormatCheck = True
End Function

在此輸入影像描述

答案2

這不是世界上最漂亮的公式,但這可能對你有用。 =IFERROR(IF(連接(MID(A1,1,4),MID(A1,6,2),MID(A1,9,2))*1>1,"真"),"假")

在此輸入影像描述

希望這可以幫助

答案3

考慮到@亞歷克斯M已給出答案作為評論,並要求我使用他的策略回答我的問題,這正是我所需要的。

我將資料驗證規則設定為:

=IF(AND(ISNUMBER(VALUE(MID(A1,1,4))),ISNUMBER(VALUE(MID(A1,6,2))),ISNUMBER(VALUE(MID(A1,9,2))),MID(A1,5,1)="/",MID(A1,8,1)="/",LEN(A1)=10),TRUE)

這是我得到的:

在此輸入影像描述

在此輸入影像描述

相關內容