Friday, 28 April 2017

excel - How to find numbers from a string?




I need to find numbers from a string. How does one find numbers from a string in VBA Excel?


Answer



Assuming you mean you want the non-numbers stripped out, you should be able to use something like:



Function onlyDigits(s As String) As String
' Variables needed (remember to use "option explicit"). '
Dim retval As String ' This is the return string. '
Dim i As Integer ' Counter for character position. '


' Initialise return string to empty '
retval = ""

' For every character in input string, copy digits to '
' return string. '
For i = 1 To Len(s)
If Mid(s, i, 1) >= "0" And Mid(s, i, 1) <= "9" Then
retval = retval + Mid(s, i, 1)
End If
Next


' Then return the return string. '
onlyDigits = retval
End Function


Calling this with:



Dim myStr as String
myStr = onlyDigits ("3d1fgd4g1dg5d9gdg")

MsgBox (myStr)


will give you a dialog box containing:



314159


and those first two lines show how you can store it into an arbitrary string variable, to do with as you wish.


No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...