Эта тема закрыта почему то, а вопрос остался 27 Окт 2012 14:33:43 Сообщение в этой теме 14 Это сообщение писал Hugo Не подскажете, как этот код сделать в виде макроса, а не Function . Я не могу в теле vba запустить на исполнение эту процедуру, хотя и прочёл как это сделать . На сегодняшний день спасаюсь private макросами если их много, а уже запускаю их отдельным макросом, где они прописаны все по порядку исполнения. Так у меня получается. Вообще мне необходимо удалить все символы, оставить только пробелы, / и русские буквы в обоих регистрах. (Собираюсь править описания изделий). Но это уже попробую сам добавить. А пока эта формула так же востребована- правки каталожных номеров запчастей.
необходимо удалить все символы, оставить только пробелы, / и русские буквы в обоих регистрах
Попробуйте так
Код
Sub OnlyRus()
Dim i As Long
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = True
.Pattern = "[^А-ЯЁа-яё\/\. ]+"
Cells(i, 1) = .Replace(Cells(i, 1), "")
End With
Next
End Sub
добрый вечер,не нашел файл-примера,еще вариант макроса,если данные в столбце A
Код
Sub test()
Dim i&, z: z = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Value
With CreateObject("VBScript.RegExp"): .Pattern = "[а-яёА-ЯЁ/\s]+"
For i = 1 To UBound(z)
If .test(z(i, 1)) Then z(i, 1) = .Execute(z(i, 1))(0)
Next
Range("A1").Resize(UBound(z), 1).Value = z
End With
End Sub