Atcdimon, в примере в русских словах английские буквы. В поиске буквы В и С русские. Полагаю искать нужно английские, а русские слова должны быть из русских букв.
Function iNomer(cell$) As String
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = True
.Pattern = "[BPWC]\d+"
If .Test(cell) Then
iNomer = .Execute(cell)(0)
End If
End With
End Function
Sub Repair_LAT() ' заменить русские буквы такими же по начертанию латинскими
If TypeName(Selection) <> "Range" Then Exit Sub
Dim arrENG(): arrENG = Array("C", "c", "E", "e", "T", "O", "o", "p", "P", "A", "a", "H", "K", "k", "X", "x", "B", "M")
Dim arrRUS(): arrRUS = Array("С", "с", "Е", "е", "Т", "О", "о", "р", "Р", "А", "а", "Н", "К", "к", "Х", "х", "В", "М")
Dim i%
For i = 0 To UBound(arrENG)
Intersect(Selection, ActiveSheet.UsedRange).Replace _
What:=arrRUS(i), _
Replacement:=arrENG(i), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True
Next i
End Sub
Возникла новая проблема с кириллицей и латиницей раньше пользовался вот этим макросом но я его применял уже к вытянутому тексту,а сейчас по сути нужно к изначальному тексту применить,а он коверкает весь текст.подскажите что делать? я предполагаю что нужно в этом макросе оставить только те буквы которые мне надо,или добавить,просто не знаю как это делается либо же можно как то все это сделать в формуле
Atcdimon, код следует оформлять соответствующим тегом: ищите такую кнопку (см. скрин) и исправьте своё сообщение. И код копируйте при русской раскладке клавиатуры - не будет проблем с кириллицей.
Да я согласен что не по теме ,но получается что эти формулы не достают нужную информацию из-за корявого текста) может можно как то решить проблему правописанием с помощью формулы,без использования макроса
они работают с тем критерием, что вы написали. Вам нужно код извлечь? Он имеет определенный вид- так? Приведите более корректный пример с разнообразием ошибок и.... но это другая тема.
Atcdimon написал: нужно из текста достать вот эти буквы B,P,W,C c порядковым номером что идет после них
Формулы выполняют это условие? - да. Результат не тот - значит критерий не верен. =TRIM(MID(A1;MIN(IFERROR(FIND({"B";"P";"W";"C"}&{0\1\2\3\4\5\6\7\8\9};A1);99));5))
Function iNomer(cell$) As String
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = True
.Pattern = "[BPWCСРВ]\d+"
If .Test(cell) Then
iNomer = .Execute(cell)(0)
End If
End With
End Function
Да и ещё попадается русская 'в',потому что текст наберают на русской раскладке типа английскими буквами,то-есть вместо английской 'B' пишут русскую 'В' и возникает проблема