将代码更改为删除而不是允许字符

Alter code to Remove instead of Allow characters

函数allows列出的字符(在本例中)

Case 48 To 57, 65 To 90, 97 To 122:

是否可以将其更改为 Remove 列出的字符?

谢谢

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

如果您打算使用 For ... Next - 只需添加 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

正如@pnuts 和@brettdj 指出的那样 answered - RegEx 更有效,在您的情况下,函数可能如下所示:

Function NonAlphaNumericOnly(strSource As String) As String
    With CreateObject("VBScript.RegExp")
        .Global = True
        .IgnoreCase = True
        .Pattern = "[\w]+"
        NonAlphaNumericOnly = .Replace(strSource, "")
    End With
End Function