Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Извлечение из ячейки русских букв И СИМВОЛОВ - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Извлечение из ячейки русских букв И СИМВОЛОВ (Макросы Sub)
Извлечение из ячейки русских букв И СИМВОЛОВ
repa1981 Дата: Среда, 15.01.2014, 20:26 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Подскажите пожалуйста. Была проблема, нужно было Извлечь из ячейки только русские буквы.
Подсказали такое решение
[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
Дата добавления - 15.01.2014 в 20:26
alex1248 Дата: Среда, 15.01.2014, 21:53 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
...Нужно, чтобы извлекались не только русские буквы, но и символы.

Вроде как надо добавить "новые" символы в перечень.
"[ А-Яа-яЁё]"

Т.е. вместо "[ А-Яа-яЁё]" вписываете, например, "[ А-Яа-яЁё.,()750]" либо "[ А-Яа-яЁё.,()0-9]"
Но возникает новая проблемка - у вас одни и те же символы оказываются в числе и выбираемых, и невыбираемых одновременно. Пока это лишь 0 (в 1-м варианте), либо все цифры (во 2-м), но ведь список снова может расшириться. Я думаю, либо надо что-то доформализовывать (возможно - убирать несколько первых символов, независимо от содержимого?), либо всё равно придется частично доделывать вручную.


skype alex12481632
Qiwi +79276708519


Сообщение отредактировал alex1248 - Среда, 15.01.2014, 21:56
 
Ответить
Сообщение
...Нужно, чтобы извлекались не только русские буквы, но и символы.

Вроде как надо добавить "новые" символы в перечень.
"[ А-Яа-яЁё]"

Т.е. вместо "[ А-Яа-яЁё]" вписываете, например, "[ А-Яа-яЁё.,()750]" либо "[ А-Яа-яЁё.,()0-9]"
Но возникает новая проблемка - у вас одни и те же символы оказываются в числе и выбираемых, и невыбираемых одновременно. Пока это лишь 0 (в 1-м варианте), либо все цифры (во 2-м), но ведь список снова может расшириться. Я думаю, либо надо что-то доформализовывать (возможно - убирать несколько первых символов, независимо от содержимого?), либо всё равно придется частично доделывать вручную.

Автор - alex1248
Дата добавления - 15.01.2014 в 21:53
repa1981 Дата: Среда, 15.01.2014, 23:12 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Мне бы почти подошел вариант вот такой "[ À-ßà-ÿ¨¸.,/_()0-9]" , но мне бы еще сюда тире (-) вписать. Как это можно сделать
 
Ответить
СообщениеМне бы почти подошел вариант вот такой "[ À-ßà-ÿ¨¸.,/_()0-9]" , но мне бы еще сюда тире (-) вписать. Как это можно сделать

Автор - repa1981
Дата добавления - 15.01.2014 в 23:12
repa1981 Дата: Среда, 15.01.2014, 23:15 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
И как-то еще можно, чтобы это начинало действовать с первой русской буквы.
 
Ответить
СообщениеИ как-то еще можно, чтобы это начинало действовать с первой русской буквы.

Автор - repa1981
Дата добавления - 15.01.2014 в 23:15
alex1248 Дата: Среда, 15.01.2014, 23:40 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
тире (-) вписать

И как-то еще можно, чтобы это начинало действовать с первой русской буквы.

Попробуйте заменить код на такой
[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]


skype alex12481632
Qiwi +79276708519


Сообщение отредактировал alex1248 - Среда, 15.01.2014, 23:41
 
Ответить
Сообщение
тире (-) вписать

И как-то еще можно, чтобы это начинало действовать с первой русской буквы.

Попробуйте заменить код на такой
[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]

Автор - alex1248
Дата добавления - 15.01.2014 в 23:40
repa1981 Дата: Четверг, 16.01.2014, 00:34 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
В принципе работает.
Но только, например в таком артикуле "02184_Dip EXPERT 150ml Scopex (Скопекс)" он оставляет "150 (Скопекс)"
 
Ответить
СообщениеВ принципе работает.
Но только, например в таком артикуле "02184_Dip EXPERT 150ml Scopex (Скопекс)" он оставляет "150 (Скопекс)"

Автор - repa1981
Дата добавления - 16.01.2014 в 00:34
alex1248 Дата: Четверг, 16.01.2014, 00:40 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
repa1981, Вы точно заменили весь код на мой последний вариант? У меня "02184_Dip EXPERT 150ml Scopex (Скопекс)" преобразовалось в "Скопекс)".


skype alex12481632
Qiwi +79276708519


Сообщение отредактировал alex1248 - Четверг, 16.01.2014, 00:52
 
Ответить
Сообщениеrepa1981, Вы точно заменили весь код на мой последний вариант? У меня "02184_Dip EXPERT 150ml Scopex (Скопекс)" преобразовалось в "Скопекс)".

Автор - alex1248
Дата добавления - 16.01.2014 в 00:40
repa1981 Дата: Четверг, 16.01.2014, 01:02 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Извиняюсь, все заработало. Я "(" не туда вставил)
 
Ответить
СообщениеИзвиняюсь, все заработало. Я "(" не туда вставил)

Автор - repa1981
Дата добавления - 16.01.2014 в 01:02
repa1981 Дата: Четверг, 16.01.2014, 01:02 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо огромное!
 
Ответить
СообщениеСпасибо огромное!

Автор - repa1981
Дата добавления - 16.01.2014 в 01:02
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Извлечение из ячейки русских букв И СИМВОЛОВ (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!