Я пытаюсь очистить некоторые адреса. У меня уже есть некоторый код, чтобы изменить «Sw», «Ne» и использовать их с большой буквы.
Однако я хотел бы добавить еще один шаг для привязки порядковых номеров к сельским адресам в том же коде, если это возможно.
все адреса, которые мне нужно обновить, начинаются с 5 цифр, затем пробел, затем 3 цифры. "NNNNN NNN"
У меня есть некоторый код для добавления ординалов, мне просто нужен способ добавить его только к этим 3 числам после 5. Например, «56579 123» к «56579 123rd» и оставить остальную часть адреса в покое.
Вот мой текущий код.
Public Function TidyUp(sin As String) As String
Dim i As Long
arr = Split(sin, " ")
For i = LBound(arr) To UBound(arr)
If UCase(arr(i)) = "NE" Then arr(i) = "NE"
If UCase(arr(i)) = "NW" Then arr(i) = "NW"
If UCase(arr(i)) = "SE" Then arr(i) = "SE"
If UCase(arr(i)) = "SW" Then arr(i) = "SW"
Next i
TidyUp = Join(arr, " ")
End Function
Вот порядковая функция, но она работает, только если у меня есть одно число в ячейке.
Function AddOrdinal(Address As String) As String
Select Case CLng(VBA.Right(Address, 1))
Case 1
AddOrdinal = Address & "st"
Case 2
AddOrdinal = Address & "nd"
Case 3
AddOrdinal = Address & "rd"
Case Else
AddOrdinal = Address & "th"
End Select
Select Case VBA.CLng(VBA.Right(Address, 2))
Case 11, 12, 13
AddOrdinal = Address & "th"
End Select
End Function
Это в основном то, чего я хочу достичь.
Address List Expected Output
12345 673 Ave 12345 673rd Ave
213 N Apple St 213 N Apple St
69818 221st Rd 69818 221st Rd
569 Sw Maple Dr 569 SW Maple Dr
10005 654 Dr 10005 654th Dr
369 Ne Banana St 369 NE Banana St
54489 412th St 54489 412th St
986 W Timber St 986 W Timber St
79532 771 Dr 79532 771st Dr
126 E Washington Ave126 E Washington Ave
56898 422 Dr 56898 422nd Dr