Подскажите пожалуйста. Была проблема, нужно было Извлечь из ячейки только русские буквы. Подсказали такое решение [vba]
Код
Function GetRusText(txt As String) As String Dim i As Long, m As String, s As String For i = 1 To Len(txt) m = Mid$(txt, i, 1) If m Like "[ А-Яа-яЁё]" Then s = s & m Next i GetRusText = WorksheetFunction.Trim(s) End Function
[/vba]
Все супер, только добавились новые параметры. Нужно, чтобы извлекались не только русские буквы, но и символы. т.е. : значение в ячейке: "00131_READY Fish mix Прикормка готовая, увлажненная, зимняя (Рыбный Микс) 750гр." Нужно чтобы оставалось : Прикормка готовая, увлажненная, зимняя (Рыбный Микс) 750гр.
Подскажите пожалуйста. Была проблема, нужно было Извлечь из ячейки только русские буквы. Подсказали такое решение [vba]
Код
Function GetRusText(txt As String) As String Dim i As Long, m As String, s As String For i = 1 To Len(txt) m = Mid$(txt, i, 1) If m Like "[ А-Яа-яЁё]" Then s = s & m Next i GetRusText = WorksheetFunction.Trim(s) End Function
[/vba]
Все супер, только добавились новые параметры. Нужно, чтобы извлекались не только русские буквы, но и символы. т.е. : значение в ячейке: "00131_READY Fish mix Прикормка готовая, увлажненная, зимняя (Рыбный Микс) 750гр." Нужно чтобы оставалось : Прикормка готовая, увлажненная, зимняя (Рыбный Микс) 750гр.repa1981
Т.е. вместо "[ А-Яа-яЁё]" вписываете, например, "[ А-Яа-яЁё.,()750]" либо "[ А-Яа-яЁё.,()0-9]" Но возникает новая проблемка - у вас одни и те же символы оказываются в числе и выбираемых, и невыбираемых одновременно. Пока это лишь 0 (в 1-м варианте), либо все цифры (во 2-м), но ведь список снова может расшириться. Я думаю, либо надо что-то доформализовывать (возможно - убирать несколько первых символов, независимо от содержимого?), либо всё равно придется частично доделывать вручную.
Т.е. вместо "[ А-Яа-яЁё]" вписываете, например, "[ А-Яа-яЁё.,()750]" либо "[ А-Яа-яЁё.,()0-9]" Но возникает новая проблемка - у вас одни и те же символы оказываются в числе и выбираемых, и невыбираемых одновременно. Пока это лишь 0 (в 1-м варианте), либо все цифры (во 2-м), но ведь список снова может расшириться. Я думаю, либо надо что-то доформализовывать (возможно - убирать несколько первых символов, независимо от содержимого?), либо всё равно придется частично доделывать вручную.alex1248
skype alex12481632 Qiwi +79276708519
Сообщение отредактировал alex1248 - Среда, 15.01.2014, 21:56
И как-то еще можно, чтобы это начинало действовать с первой русской буквы.
Попробуйте заменить код на такой [vba]
Код
Function GetRusText(txt As String) As String Dim i As Long, j As Long, m As String, s As String For j = 1 To Len(txt) m = Mid$(txt, j, 1) If m Like "[А-Яа-яЁё]" Then s = s & m Exit For End If Next j If j = Len(txt) Then Exit Function For i = j + 1 To Len(txt) m = Mid$(txt, i, 1) If m Like "[ А-Яа-яЁё.,()0-9-]" Then s = s & m Next i GetRusText = WorksheetFunction.Trim(s) End Function
И как-то еще можно, чтобы это начинало действовать с первой русской буквы.
Попробуйте заменить код на такой [vba]
Код
Function GetRusText(txt As String) As String Dim i As Long, j As Long, m As String, s As String For j = 1 To Len(txt) m = Mid$(txt, j, 1) If m Like "[А-Яа-яЁё]" Then s = s & m Exit For End If Next j If j = Len(txt) Then Exit Function For i = j + 1 To Len(txt) m = Mid$(txt, i, 1) If m Like "[ А-Яа-яЁё.,()0-9-]" Then s = s & m Next i GetRusText = WorksheetFunction.Trim(s) End Function