Необходимо удалить из строки почтовый индекс и идущую за ним запятую и пробел. А также удалить все, что идет после символа ";" При том индекс не всегда может быть в начале строки.
С удалением всего после запятой я быстренько разобрался. Range("A:A").Replace " ;", "" А вот с индексом не могу.
Sub Replaces()
Dim a, i&, r&, re, p$(1 To 2)
p(1) = "\d{6}, ": p(2) = ";.+$"
a = Intersect([a:a], ActiveSheet.UsedRange)
Set re = CreateObject("VBScript.RegExp")
For i = 1 To 2
re.Pattern = p(i)
For r = 1 To UBound(a)
If re.test(a(r, 1)) Then a(r, 1) = re.Replace(a(r, 1), "")
Next
Next
[a1].Resize(UBound(a), 1) = a
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!