2015-08-24 4 views
1

Функция allows символ в списке (в данном случае)Alter код для удаления вместо Разрешить символов

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 
+0

Код, казалось бы, отсюда: http: // stac koverflow.com/questions/27504375/best-methods-to-reference-a-user-function-in-a-macro – pnuts

+1

Они оба пришли сюда http://stackoverflow.com/questions/15723672/how-to-remove -all-non-alphanumeric-characters-from-a-string-except-period-and-sp – xyz

+0

Так много для [правильной атрибуции] (http://stackoverflow.com/help/licensing). – pnuts

ответ

1

Если вы собираетесь использовать 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 является более эффективным, в вашем случае функция может должны быть следующими:

Смежные вопросы