У меня есть 50000 строк имен и адресов, каждая из которых занимает одну ячейку. Чтобы разделить ячейку на другое имя, номер улицы, улицу, город и т. Д. Я пытаюсь разбить ячейки на столбцы, которые соответствуют либо номеру улицы, либо названию улицы.
В настоящее время мой лист Excel не имеет конкретных имен столбцов, только A; B; C и т. Д. У меня есть код VBA, который будет разделять каждую ячейку. Однако номер улицы и / или название улицы будут разделяться по-разному в зависимости от строки «textnumbertext» в каждой ячейке.
У меня есть отдельный код VBA, чтобы добавить звездочку перед любой записью, которая начинается с номера улицы (см. Код). Это затем помещает каждую ячейку в правильный столбец (я могу удалить звездочку позже). Однако я чувствую, что этот код неэффективен и, возможно, мог бы быть менее многословным, если бы я использовал функцию Case.
Еще одним осложнением является то, что некоторые номера улиц будут 14А, или 12В, или 10с, или 12а. Если я добавлю эти опции в приведенный ниже код, то все станет очень длинным и неэффективным. Есть мысли, пожалуйста?
Sub ReplaceFirstNumber()
'If the first character in the string starts with a number between 1-9 THEN
'ADD a * to the string
Dim r As Range
Dim c As Range
On Error Resume Next
Set r = Range(Range("E1"), Range("E" & Rows.Count).End(xlDown))
For Each c In r
If Left(c.Value, 1) = "1" _
Or Left(c.Value, 1) = "2" _
Or Left(c.Value, 1) = "3" _
Or Left(c.Value, 1) = "4" _
Or Left(c.Value, 1) = "5" _
Or Left(c.Value, 1) = "6" _
Or Left(c.Value, 1) = "7" _
Or Left(c.Value, 1) = "8" _
Or Left(c.Value, 1) = "9" Then
c.Value = " * " & c.Value
End If
Next c
End Sub