2012-04-20 117 views
5

範圍之間,以確定我是很新,,我試圖找出如何識別範圍,其中一個角色的變化範圍時,將郵政編碼。需要的郵政編碼

例如,我想看看郵政編碼下降2G82P8之間。

換句話說,什麼我正在尋找的範圍將是2_8其中強調可以GP,但我不知道如何識別代碼。

我真的很感謝一些幫助,找出如何解決這個問題。謝謝!

回答

7

您可以使用VBA Mid功能的拉出每個字符,並根據您的業務規則驗證。下面是它可能如何看一個例子:

Function ValidatePostalCode(code As String) 
    ValidatePostalCode = _ 
     (Mid(code, 1, 1) = "2") And _ 
     (Mid(code, 2, 1) >= "G" And Mid(code, 2, 1) <= "P") And _ 
     (Mid(code, 3, 1) = "8") 
End Function 

這個函數將返回TrueFalse指示輸入是否有效的值。

+0

+1第一個工作解決方案 – brettdj 2012-04-20 03:50:02

+0

+1同意與brettdj :) – 2012-04-20 18:16:20

9

LIKE避免重複的字符串測試

1.簡單的測試

Function ValidString(strIn As String) As Boolean 
ValidString = strIn Like "2[G-P]8" 
End Function 

2.不區分大小寫的版本

Function ValidString(strIn As String) As Boolean 
ValidString = LCase$(strIn) Like LCase$("2[G-P]8") 
End Function 
+1

+1同意。我的'VBA'生鏽:) – mellamokb 2012-04-20 02:51:01

+1

非常感謝,很容易工作。 現在,我遇到的主要問題是我有很多範圍需要過濾,所以我必須爲每個範圍創建一個單獨的函數。 – user960358 2012-04-20 06:51:12

+1

你可以把範圍放在一個數組中並循環,並檢查它們是否匹配。 – mellamokb 2012-04-20 14:33:53