Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: Илья от 24 июня 2014, 21:06

Название: скопировать только цифры из одного TextBox в другой
Отправлено: Илья от 24 июня 2014, 21:06
Имеем TextBox1.Text = "Участок № 123" и пустой TextBox2.
Как в TextBox2 вставить только "123" из TextBox1?
Название: Re: скопировать только цифры из одного TextBox в другой
Отправлено: Администратор от 24 июня 2014, 21:19
Илья, однозначно нельзя ответить на Ваш вопрос.
Алгоритм будет зависеть от данных.

Предлагаю такие алгоритмы (которые сейчас я придумал), а Вы выберите, какой Вам подходит:
Название: Re: скопировать только цифры из одного TextBox в другой
Отправлено: Илья от 24 июня 2014, 21:26
3-й вариант подходит! Меняться будут только цифры, от 1 до 147
Название: Re: скопировать только цифры из одного TextBox в другой
Отправлено: Администратор от 24 июня 2014, 21:39
Код:
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
[свернуть]
Название: Re: скопировать только цифры из одного TextBox в другой
Отправлено: Илья от 24 июня 2014, 22:13
Получилось так!
Спойлер
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
[свернуть]