I'm totally at a loss with this code:

I need to store 25KG N (the N after the space to indicate Nett weight) or
I need to store 25KG G (the G after the space to indicate Gross weight)

However a calculation should be made in dbgrid1 so I am trying to strip off the alpha characters leaving only 1 to 9 (ascii 48 to 57)
and write that to DBGrid1.Columns("Max")

'Leave 0 to 9
Dim strMax As String
Dim strNet As String
Dim lngIndex As Long
Dim netIndex As Long
strMax = DBGrid1.Columns("Mass").Text
For lngIndex = Len(strMax) To 1 Step -1
If (Asc(Mid$(strMax, lngIndex, 1)) >= 48 And Asc(Mid$(strMax, lngIndex, 1)) <= 57) Then
' it's OK
Else
strMax = Replace(strMax, Mid$(strMax, lngIndex, 1), "")
End If
Next
DBGrid1.Columns("Max").Text = strMax


THIS works fine if the data in DBGrid1.Columns("Mass").Text is 25KG or 25kg or 25Kg (Upper or lower case)

Now THE PROBLEM AS soon as a space is in the string

I need to store 25KG N (the N after the space to indicate Nett weight) or
I need to store 25KG G (the G after the space to indicate Gross weight)

if I run the code
25KG N returns correctly as 25 (all with anything accept the second G is OK)

But
25KG G returns error Invalid procedure call or argument

what is funny is that sometimes it returns OK and other combinations not

25kg G or 25KG g or 25kg G returns correctly as 25

AND

25KG G or 25kG G or 25kg g or 25 Kg G returns error Invalid procedure call or argument
(Must be the second G?)