for some reason I cant get this to work. I need to remove all numbers from the end of a string leaving the ones at the beginning. So for example K1WIST-VED12 would = K1WIST-VED Code: Function StripNumber (GetComputerName As String) Dim Str As String Dim i As Integer, b As Integer GetComputerName = Trim(GetComputerName) ComputerNameLength = Len(GetComputerName) For i = ComputerNameLength To 1 Step -1 If IsNumeric(Mid(GetComputerName, i, 1)) Then Str = (Left(GetComputerName, ComputerNameLength - b) b = (b + 1) Else StripNumber = Trim(Str) End If Next i Return StripNumber = Trim(Str) End Function
OK. I have corrected the code for you. Here it is : Code: Function StripNumber (GetComputerName) Dim Str As String Dim i As Integer, b As Integer b = 1 GetComputerName = Trim(GetComputerName) ComputerNameLength = Len(GetComputerName) For i = ComputerNameLength To 1 Step -1 If IsNumeric(Mid(GetComputerName, i, 1)) Then Str = Left(GetComputerName, ComputerNameLength - b) b = b + 1 Else Exit For End If Next StripNumber = Trim(Str) End Function It should work fine. The code is pretty self-explanatory. But I would just explain one point : in the else condition of the If block inside the loop, you should use "Exit For" so that the control jumps out of the for loop when thefirst non-numeric character (from end) is encountered.
Thank you for the reply but Im getting a Microsoft VBScript compilation error: Expected end of statement for the As String and As Integer statements when i remove them that error clears but returns blank
You should have mentioned that you are using VBScript. The code I gave would compile fine in VB6. Anyway, here is the VBScript Code: Code: Function StripNumber (GetComputerName) Dim Str,i,b b = 1 GetComputerName = Trim(GetComputerName) ComputerNameLength = Len(GetComputerName) For i = ComputerNameLength To 1 Step -1 If IsNumeric(Mid(GetComputerName, i, 1)) Then Str = Left(GetComputerName, ComputerNameLength - b) b = b + 1 Else Exit For End If Next If Str = "" And b = 1 Then Str = GetComputerName End If StripNumber = Trim(Str) End Function To try the above func, here is a test program: Code: Dim mStr mStr = InputBox("Enter a test value") Msgbox(StripNumber(mStr)) WScript.quit Function StripNumber (GetComputerName) Dim Str,i,b b = 1 GetComputerName = Trim(GetComputerName) ComputerNameLength = Len(GetComputerName) For i = ComputerNameLength To 1 Step -1 If IsNumeric(Mid(GetComputerName, i, 1)) Then Str = Left(GetComputerName, ComputerNameLength - b) b = b + 1 Else Exit For End If Next If Str = "" And b = 1 Then Str = GetComputerName End If StripNumber = Trim(Str) End Function The previous code had a very minor bug which return "blank" only when the input text was *purely* alphabetical. Hope this one is alright. Tell me if it works ..