скопировать только цифры из одного TextBox в другой

Автор Илья, 24 июня 2014, 21:06

Илья

Имеем 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
[свернуть]