The function allows
the character listed (in this case)
Case 48 To 57, 65 To 90, 97 To 122:
Is it possible to change this to Remove
the characters listed instead?
Thanks
Function AlphaNumericOnly(strSource As String) As String
Dim i As Integer
Dim strResult As String
For i = 1 To Len(strSource)
Select Case Asc(Mid(strSource, i, 1))
Case 48 To 57, 65 To 90, 97 To 122:
strResult = strResult & Mid(strSource, i, 1)
End Select
Next
AlphaNumericOnly = strResult
End Function
If you intend to use For ... Next
- just add Case Else
:
For i = 1 To Len(strSource)
Select Case Asc(Mid(strSource, i, 1))
Case 48 To 57, 65 To 90, 97 To 122:
Case Else:
strResult = strResult & Mid(strSource, i, 1)
End Select
Next
As @pnuts pointed and @brettdj answered - RegEx is more efficient, in your case the function may be as follows:
Function NonAlphaNumericOnly(strSource As String) As String
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = True
.Pattern = "[\w]+"
NonAlphaNumericOnly = .Replace(strSource, "")
End With
End Function