Этот ответ не лучше , чем другие с положительными оценками, но я предпочитаю использовать ASCII-коды для обработки символов в строке.Это позволяет диапазонам, которые организованы чисто с Select Statements
.Это особенно полезно для отклонения символов от неискушенных пользователей, таких как мои родители (я не назвал их внука "4").
Ниже приведен UDF, который будет работать для OP, но также показывает, как можно использовать функция VBA Asc в сочетании с оператором выбора для обработки, прописными / строчными буквами или любыми другими конкретными символами:
Public Function GiveTheNumbers(theINPUT As String) As String
Dim p As Long, aCode As Long
For p = 1 To Len(theINPUT)
aCode = Asc(Mid(theINPUT, p, 1)) 'converts string to an ascii integer
Select Case aCode
'32 is the ascii code for space bar. 48 to 57 is zero to nine.
Case 32, 48 To 57
GiveTheNumbers = GiveTheNumbers & Chr(aCode) 'Chr() converts integer back to string
'the rest of these cases are not needed for the OP but I'm including for illustration
Case 65 To 90
'all upper case letters
Case 97 To 122
'all lower case letters
Case 33, 64, 35, 36, 37, 42
'my favorite characters of: !@#$%*
Case Else
'anything else
End Select
Next p
End Function