Страницы: Пред. 1 2
RSS
Извлечь из текста порядковые номера, которые начинаются с английской B, P, W и C
 
Цитата
пишут  русскую 'В' и возникает проблема
Я включил русские буквы в паттерн
Код
.Pattern = "[BPWCСРВ]\d+"
 
Kuzmich, Не уверен, но унифицировать код лучше. то есть даже если  там русские похожие символы, то на выходе должны быть единообразные латинские, хотя это по желанию ТС. Может и не надо.
По вопросам из тем форума, личку не читаю.
 
да как раз на выходе должны быть только латинские,потому что они будут использоваться ВПР где в таблице только латинские буквы
почему я раньше и пользовался макросом где происходила замена кириллицы на латиницу
 
Цитата
на выходе должны быть только латинские
Как я понял проблемы возникают только с тремя символами С, В и Р
Код
Function iNomer(cell$) As String
 With CreateObject("VBScript.RegExp")
   .Global = True
   .IgnoreCase = True
   .Pattern = "[BPWCСРВ]\d+"
   If .Test(cell) Then
     iNomer = .Execute(cell)(0)
     If Left(iNomer, 1) = "С" Then iNomer = "C" & Mid(iNomer, 2)
     If Left(iNomer, 1) = "Р" Then iNomer = "P" & Mid(iNomer, 2)
     If Left(iNomer, 1) = "В" Then iNomer = "B" & Mid(iNomer, 2)
   End If
 End With
End Function
 
а в этом коде 5 символов достается или 4?потому что у меня дальше уже в функции ВПР не срабатывает
Изменено: Atcdimon - 03.11.2019 19:31:13
 
достается одна из букв (B,C,P или W из англ. и  B,C,P из русск. алфавита и три цифры
 
а можете код исправить что б после букв BPCW доставалось 4 знака,потому что есть номера например как P013 и P013s,и в общей сложности получается 5
 
Цитата
есть номера например как P013 и P013s,
Используйте паттерн
Код
.Pattern = "[BPWCСРВ]\d{3}[a-z]?"
 
Цитата
Kuzmich написал:
.Pattern = "[BPWCСРВ]\d{3}[a-z]?"
все ок,работает спасибо!только еще момент. после обычных номеров например P013 должен стоять пробел,как 5 знак
 
Цитата
Atcdimon написал:
только еще момент.
Atcdimon, Вы СРАЗУ не можете все условия обговорить?
 
Сорян!ну я как бы в самом начале писал в примерах формул, которые нужно было совместить в одну, 5 знаков
 
Добавьте условие, если длина 4 символа, то добавить пробел
 
да я не шарю эти коды писать,почему и обратился за помощью
 
Код
Function iNomer(cell$) As String
 With CreateObject("VBScript.RegExp")
   .Global = True
   .IgnoreCase = True
   .Pattern = "[BPWCСРВ]\d{3}[a-z]?"
   If .Test(cell) Then
     iNomer = .Execute(cell)(0)
     If Left(iNomer, 1) = "С" Then iNomer = "C" & Mid(iNomer, 2)
     If Left(iNomer, 1) = "Р" Then iNomer = "P" & Mid(iNomer, 2)
     If Left(iNomer, 1) = "В" Then iNomer = "B" & Mid(iNomer, 2)
     If Len(iNomer) = 4 Then iNomer = iNomer & " "
   End If
 End With
End Function
 
спасибо огромное!все ок
Страницы: Пред. 1 2
Наверх