返回列表 上一主題 發帖

[發問] VBA PostCode format Validation problem!!

本帖最後由 stillfish00 於 2014-11-18 10:13 編輯

回復 1# hildaliu
寫了一個Function判斷,另外根據wiki多加了判斷條件GIR NLL
  1. Function IsUKPostcode(sText As String) As Boolean
  2.   Dim oRegexp As Object
  3.   
  4.   Set oRegexp = CreateObject("vbscript.regexp")
  5.   With oRegexp
  6.     .ignoreCase = False
  7.     .Pattern = "([A-Z]{1,2}\d(\d|[A-Z])?|GIR) \d[A-Z]{2}"
  8.   End With
  9.   
  10.   IsUKPostcode = oRegexp.Test(sText)
  11. End Function
複製代碼
test
  1. Sub Test()
  2.   Dim ar, x
  3.   ar = Array("F22 5BQ", "FJ29 1GH", "FJ00", "E0 3KK")
  4.   
  5.   For Each x In ar
  6.     If Not IsUKPostcode(CStr(x)) Then MsgBox "這是不正確的郵編:" & x
  7.   Next
  8. End Sub
複製代碼
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

回復 2# stillfish00
不好意思,2# pattern 稍微改一下,以匹配整個字串而不是字串包含郵遞區號,這樣比較合理。
.Pattern = "^([A-Z]{1,2}\d(\d|[A-Z])?|GIR) \d[A-Z]{2}$"
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

  1. Sub Validation()
  2.   If IsUKPostcode(Range("H19").Text) Then
  3.     MsgBox "valid post code"
  4.   Else
  5.     MsgBox " invalid post code"
  6.   End If
  7. End Sub
複製代碼
回復 5# hildaliu
表達不清、題意不明確、沒附檔案格式、沒有討論問題的態度~~~~~~以上愛莫能助。

TOP

        靜思自在 : 犯錯出懺悔心,才能清淨無煩惱。
返回列表 上一主題