Чтобы удалить все небуквенно-цифровые символы из строки в Excel VBA, за исключением точки и пробела, вы можете использовать различные методы. Вот несколько подходов:
Метод 1: использование регулярных выражений
Вы можете использовать возможности регулярных выражений для удаления небуквенно-цифровых символов. Сначала вам нужно добавить ссылку на библиотеку регулярных выражений Microsoft VBScript. Для этого выполните следующие действия:
- Нажмите Alt+F11, чтобы открыть редактор Visual Basic.
- Перейдите в Инструменты ->Справочники.
- Прокрутите вниз и отметьте «Регулярные выражения Microsoft VBScript x.x» (самая последняя доступная версия).
После добавления ссылки вы можете использовать следующий код:
Function RemoveNonAlphanumeric(ByVal inputString As String) As String
Dim regex As Object
Set regex = CreateObject("VBScript.RegExp")
With regex
.Pattern = "[^A-Za-z0-9. ]"
.Global = True
RemoveNonAlphanumeric = .Replace(inputString, "")
End With
End Function
Пример использования: CleanString = RemoveNonAlphanumeric("Hello, $@World!")
Вывод: Hello World
Метод 2: использование цикла и сравнения
Другой метод включает в себя перебор каждого символа в строке и удаление небуквенно-цифровых символов с использованием сравнения кода ASCII. Вот пример:
Function RemoveNonAlphanumeric(ByVal inputString As String) As String
Dim cleanString As String
Dim i As Integer
Dim charCode As Integer
cleanString = ""
For i = 1 To Len(inputString)
charCode = Asc(Mid(inputString, i, 1))
If (charCode >= 48 And charCode <= 57) Or _
(charCode >= 65 And charCode <= 90) Or _
(charCode >= 97 And charCode <= 122) Or _
charCode = 32 Or charCode = 46 Then
cleanString = cleanString & Mid(inputString, i, 1)
End If
Next i
RemoveNonAlphanumeric = cleanString
End Function
Пример использования: CleanString = RemoveNonAlphanumeric("Hello, $@World!")
Вывод: Hello World