Удалить все специальные символы, кроме пробела - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь удалить все специальные символы из диапазона. У меня есть, чтобы поддерживать только цифры и буквы, но он также удаляет пробелы. Поскольку строки содержат более одного слова, предполагается, что они сохраняют пробелы. Следует поддерживать буквенно-цифровой + пробел.

Что у меня есть до сих пор:

Sub RemoveNotAlphasNotNum()
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "Range"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
    xOut = ""
    For i = 1 To Len(Rng.Value)
        xTemp = Mid(Rng.Value, i, 1)
        If xTemp Like "[a-z.]" Or xTemp Like "[A-Z.]" Or xTemp Like "[0-9.]" Or xTemp Like "[\s]" Then
            xStr = xTemp
        Else
            xStr = ""
        End If
        xOut = xOut & xStr
    Next i
    Rng.Value = xOut
Next
End Sub

Кажется, я не могу понять, какой код пробела поддерживать.

Ответы [ 2 ]

0 голосов
/ 20 января 2019

Удалить не альфа-цифры вкл.ПРОБЕЛ

Option Explicit

Sub RemoveNotAlphasNotNum()

    Dim Rng As Range
    Dim WorkRng As Range
    Dim xTitleId As String
    Dim xOut As String
    Dim xTemp As String
    Dim xStr As String
    Dim i As Long

    On Error Resume Next
    xTitleId = "Range"
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)

    For Each Rng In WorkRng
        xOut = ""
        For i = 1 To Len(Rng.Value)
            xTemp = Mid(Rng.Value, i, 1)
            If xTemp Like "[ 0-9A-Za-z]" Then
                xStr = xTemp
              Else
                xStr = ""
            End If
            xOut = xOut & xStr
        Next i
        Rng.Value = xOut
    Next

End Sub
0 голосов
/ 20 января 2019

Если вам не нужны точки, не включайте их в разрешенные классы символов, например,

If xTemp Like "[a-z]"

вместо

If xTemp Like "[a-z.]"

("[0-9]" не сохранит десятичные точки в числах.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...