Страницы: 1
RSS
удалить все кроме букв и пробелов
 
Всем привет. Возникла необходимость по одной задаче определить, взял код из Plex, т.к. она  у меня есть, но что-то он не хочет работать. Что в нем не так?
Код
Sub тест()
     Set DataRng = Range("C22:C23")
        For i = 32 To 255
            If Not (i = 42 Or i = 63 Or i = 32 Or i = 168 Or i = 184 Or (i >= 65 And i <= 90) Or (i >= 97 And i <= 122) Or (i >= 192 And i <= 255) Or (i >= 65 And i <= 90)) Then DataRng.Replace What:=Chr(i), Replacement:=""
        'убираем лишние пробелы
        For Each cell In DataRng
            If (Not IsEmpty(cell)) And (Not IsError(cell)) Then cell.Value = WorksheetFunction.Trim(cell.Value)
        Next cell
    Next
End Sub
 
Вроде все работает.
Диапазон; Range("C2:C6")
 
Цитата
удалить все кроме букв и пробелов
Для примера из сообщения #2
Код
Sub Tablica()
Dim i As Long
Dim iLastRow As Long
Dim re As Object
 iLastRow = Cells(Rows.Count, 2).End(xlUp).Row
    Set re = CreateObject("vbscript.regexp")
    re.Pattern = "[^ А-ЯЁа-яё]"
    re.Global = True
    re.IgnoreCase = True
  For i = 2 To iLastRow
    Cells(i, 3) = re.Replace(Cells(i, 2), "")
  Next
End Sub
 
Kuzmich, прошу прощения, а зачем игнорировать регистр (re.IgnoreCase=True). если вы оба варианта (А-ЯЁа-яё) в шаблоне указали?
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
вариант функции в столбце B ,с учетом #4
 
Код
Function bbb$(t$)
    With CreateObject("vbscript.regexp"): .IgnoreCase = True: .Global = True: .Pattern = "[^\sа-яёa-z]"
    bbb = .Replace(t, "")
    End With
End Function
Изменено: кузя1972 - 23.05.2018 17:41:46
 
Ого, сколько вариаций предложила лишь невнимательность моя)) Первый код на самом деле работает, просто смотрел не в тот диапазон. Дело было вечером)) Всем спасибо, вижу регулярки с задачей справляются куда шустрее.
Страницы: 1
Наверх