Steve Staple
Steve Staple

Reputation: 3279

How do I extract numbers from a string in VB6?

I have a string that looks something like 'NS-BATHROOMS 04288'

I only want the numbers.

I hve searched for answers, but none so far even get pst the compiler.

How can I do this?

Upvotes: 1

Views: 5560

Answers (3)

arshad
arshad

Reputation: 1

You can use this function for extract numerical chr as string value:

Public Function Str_To_Int(MyString As Variant) As Long
Dim i As Integer
Dim X As Variant
If IsNull(MyString) Or MyString = "" Then
Str_To_Int = 0
Exit Function
End If
For i = 1 To Len(MyString)
If IsNumeric(Mid(MyString, i, 1)) = True Then
X = Nz(X, "") & Mid(MyString, i, 1)
End If
Next i
Str_To_Int = Nz(X, 0)
End Function

Upvotes: 0

C0L.PAN1C
C0L.PAN1C

Reputation: 12243

I'd personally use regex. You can match given regex patterns to achieve what you need. This function matches only digits.

For VB6 you'd do something like:

Dim myRegExp, ResultString
Set myRegExp = New RegExp
myRegExp.Global = True
myRegExp.Pattern = "[\d]"

Then you'd go against your String. https://support.microsoft.com/en-us/kb/818802

Upvotes: 0

Marc Wittmann
Marc Wittmann

Reputation: 2362

without regex you can do it with: (altough VB6/VBA Code really isn`t nice to look at)

Public Function ReturnNonAlpha(ByVal sString As String) As String  
   Dim i As Integer  
   For i = 1 To Len(sString)  
       If Mid(sString, i, 1) Like "[0-9]" Then  
           ReturnNonAlpha = ReturnNonAlpha + Mid(sString, i, 1)  
       End If  
   Next i  
End Function  

Upvotes: 2

Related Questions