Удаление всего текста из inputbox?

Как удалить все символы из inputbox, оставив только цифры?

У меня есть макрос, который запускает столбец, удаляющий пробел, сокращая до 13 цифр, но мне также нужно удалить любые текстовые символы.

3 ответа

  1. Альтернативный метод использования aregular expression:

    Public Sub removeCharacters()
    
        For Each RANGE_UNASSIGNED In Worksheets(1).Range("A1:A" & Worksheets(1).Range("A1").End(xlDown).Row)
        STRING_OUTPUT = ""
            For INTEGER_STEP = 1 To Len(RANGE_UNASSIGNED.Value)
                STRING_TEMPORARY = Mid(RANGE_UNASSIGNED.Value, INTEGER_STEP, 1)
                    If STRING_TEMPORARY Like "[a-z.]" Or STRING_TEMPORARY Like "[A-Z.]" Then
                        STRING_xOUTPUT = ""
                    Else
                        STRING_xOUTPUT = STRING_TEMPORARY
                    End If
                    STRING_OUTPUT = STRING_OUTPUT & STRING_xOUTPUT
            Next INTEGER_STEP
            RANGE_UNASSIGNED.Value = STRING_OUTPUT
        Next RANGE_UNASSIGNED
    End Sub
    

    Это должно удалить все Альфа-символы из вашей ячейки. При необходимости можно удалить дополнительные символы.

  2. Подход, основанный на IsNumeric.

    Sub Keep_If_IsNumeric()
    
    For j = 1 To Cells(Rows.Count, "A").End(xlUp).Row
    
    Set c = Cells(j, 1)
    
    strc = ""
    
    For i = 1 To Len(c.Value)
    
    n = Mid(c.Value, i, 1)
    
     If Not IsNumeric(strc & n & "0") Then
    
       Else
    
       strc = strc & n
    
     End If
    
    Next
    c.Offset(, 1) = strc
    c.Offset(, 2) = Val(Replace(strc, ",", "."))
    
    Next
    End Sub
    
  3. Я все еще думаю, что a regexp— это путь.

    Function removeAlpha(strData As String) As String
    
        strData = Replace(strData, " ", "")
    
        With CreateObject("vbscript.regexp")
            .Pattern = "[A-Za-z]"
            .Global = True
             removeAlpha = .Replace(strData, "")
        End With
    
    End Function
    

    И испытать:

    Sub TestClean()
        Const strTest As String = "qwerty123 456 uiops"
        MsgBox removeAlpha(strTest)
    End Sub