Имеем TextBox1.Text = "Участок № 123" и пустой TextBox2.
Как в TextBox2 вставить только "123" из TextBox1?
Илья, однозначно нельзя ответить на Ваш вопрос.
Алгоритм будет зависеть от данных.
Предлагаю такие алгоритмы (которые сейчас я придумал), а Вы выберите, какой Вам подходит:
- если перед числом есть пробел, то макрос может ориентироваться на пробел;
- если перед числом всегда есть символ "№", то макрос может на него ориентироваться;
- макрос может двигаться с конца в начало до тех пор, пока встречаются цифры. Как только цифры заканчиваются, предполагается, что число найдено. Нужно представлять, есть ли кроме цифр другие символы.
3-й вариант подходит! Меняться будут только цифры, от 1 до 147
Код:
Sub Procedure_1()
Dim strString1 As String
Dim strString2 As String
Dim i As Long
strString1 = "Участок № 123"
For i = Len(strString1) To 1 Step -1
If IsNumeric(Mid(strString1, i, 1)) = True Then
strString2 = Mid(strString1, i, 1) & strString2
Else
Exit For
End If
Next i
'Здесь у нас результат в переменной "strString2".
End Sub
Получилось так!
Спойлер
Private Sub TextBox1_AfterUpdate()
Dim strString1 As String
Dim strString2 As String
Dim i As Long
strString1 = TextBox1.Text
For i = Len(strString1) To 1 Step -1
If IsNumeric(Mid(strString1, i, 1)) = True Then
strString2 = Mid(strString1, i, 1) & strString2
Else
Exit For
End If
Next i
TextBox2.Text = strString2
End Sub