0

この文字列を操作するための最良の方法を探しています。Excel の請求明細行の説明フィールドから状態を抽出する必要があります。状態を抽出する必要がある行のタイプの例を次に示します。

Managment Blvd.Philadelphia.PA.19103
Management EXECUTIVE CTJACKSONVILLE.FL.32216-4041

ご覧のとおり、州コードは右側の郵便番号の直後にあります。これが私が考えていることです:

IF(isnumeric(Right(mystring,5)) 

Then 
MyString = Right(mystring,8)
MyString =Left(mystring,2)

End If

それは私に州の2文字を与えるでしょうか?または、これを行うためのはるかに良い方法はありますか? 州の略語の表を追加して、文字を比較して州と一致することを確認することで、いくつかのチェックを追加することもできます。

ただ、2番目の例のように+4を含む郵便番号の場合はどうすればいいのか、現在のところわかりません。どんな助けでも大歓迎です!

4

4 に答える 4

1

状態が常に最後から 2 番目であると仮定する

 Function getState(description As String) As String
     Dim s() As String
     s = Split(description, ".")
     getState = s(UBound(s) - 1)
 End Function

状態が文字列のどこにでもある可能性があるが、常に 2 文字で文字列の末尾に近い場合

 Function getState(description As String) As String
     Dim i As Long
     Dim s() As String
     s = Split(description, ".")
     For i = UBound(s) To LBound(s) Step -1
         If Len(s(i)) = 2 Then
             getState = s(i)
             Exit For
         End If
     Next
 End Function
于 2013-06-18T15:42:40.400 に答える