Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2018, 21:20   #21
svsh2016
Форумчанин
 
Регистрация: 16.06.2015
Сообщений: 100
По умолчанию

в файл-примере результат после#20 в столбце C
Вложения
Тип файла: xls example_23_08_2018_progr_last4.xls (47.5 Кб, 15 просмотров)
svsh2016 вне форума Ответить с цитированием
Старый 24.08.2018, 05:33   #22
Alexey200999
Пользователь
 
Регистрация: 21.08.2018
Сообщений: 15
По умолчанию

Всем день добрый! Спасибо что помогаете, прилагаю еще один образец с пояснением
Вложения
Тип файла: xls образец-3.xls (29.5 Кб, 10 просмотров)

Последний раз редактировалось Alexey200999; 24.08.2018 в 09:08.
Alexey200999 вне форума Ответить с цитированием
Старый 28.08.2018, 17:26   #23
svsh2016
Форумчанин
 
Регистрация: 16.06.2015
Сообщений: 100
По умолчанию

в ответ на #22, у Вас очень разнородные данные для строк 1-8 функция uuu в столбце B,для строк 9-15 функция yyy в столбце B,можно объединить ,но лучше опубликуйте окончательный файл пример,-строк15-20 (в одном столбце,что дано),(в другом,что надо)

Код:
Function uuu$(t$)
With CreateObject("VBScript.RegExp"): .Global = True: .Pattern = "(?:\-|\+|\(|\))(\d)": t = .Replace(t, "$1")
 .Pattern = "\b(?:\d{11}|(\d{6}))\b": uuu = Trim(.Replace(t, " $& "))
 .Pattern = " 7": If .test(uuu) Then uuu = .Replace(uuu, " 8")
End With
End Function
Код:
Function yyy$(t$)
With CreateObject("VBScript.RegExp"): .Global = True: .Pattern = "(?:\-|\+|\(|\))(\d)": t = .Replace(t, "$1")
.Global = False: .Pattern = "8\d{10}": If .test(t) Then yyy = .Execute(t)(0)
.Pattern = "\d{10}": If .test(t) Then yyy = "8" & .Execute(t)(0)
.Pattern = "7\d{10}": If .test(t) Then yyy = "8" & Mid(.Execute(t)(0), 2)
End With
End Function
svsh2016 вне форума Ответить с цитированием
Старый 29.08.2018, 09:37   #24
Alexey200999
Пользователь
 
Регистрация: 21.08.2018
Сообщений: 15
По умолчанию

Цитата:
Сообщение от svsh2016 Посмотреть сообщение
в ответ на #22, у Вас очень разнородные данные для строк 1-8 функция uuu в столбце B,для строк 9-15 функция yyy в столбце B,можно объединить ,но лучше опубликуйте окончательный файл пример,-строк15-20 (в одном столбце,что дано),(в другом,что надо)

Код:
Function uuu$(t$)
With CreateObject("VBScript.RegExp"): .Global = True: .Pattern = "(?:\-|\+|\(|\))(\d)": t = .Replace(t, "$1")
 .Pattern = "\b(?:\d{11}|(\d{6}))\b": uuu = Trim(.Replace(t, " $& "))
 .Pattern = " 7": If .test(uuu) Then uuu = .Replace(uuu, " 8")
End With
End Function
Код:
Function yyy$(t$)
With CreateObject("VBScript.RegExp"): .Global = True: .Pattern = "(?:\-|\+|\(|\))(\d)": t = .Replace(t, "$1")
.Global = False: .Pattern = "8\d{10}": If .test(t) Then yyy = .Execute(t)(0)
.Pattern = "\d{10}": If .test(t) Then yyy = "8" & .Execute(t)(0)
.Pattern = "7\d{10}": If .test(t) Then yyy = "8" & Mid(.Execute(t)(0), 2)
End With
End Function
В #22 образец, столбец А-дано, столбец С-как должно получиться.
Если номер в тексте, то поиск его по маскам и обработка только номера, не задевая текст, а именно - не удаляя скобки и дефисы из текста, а только в номере и проставление пробела до и после номера
Alexey200999 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Слипшийся текст, как разделить? zvmofficial Microsoft Office Excel 9 22.03.2018 09:33
Как разделить текст в Word? almazenok Общие вопросы Delphi 5 15.02.2011 15:45
как в ячейке разделить текст на абзацы evdss Microsoft Office Excel 1 18.10.2010 08:52
как разделить текст на переменные GAGARIN-NEW Общие вопросы Delphi 2 07.10.2007 15:24
Как разделить текст в Tedit на 2 переменные. Ната Общие вопросы Delphi 2 23.04.2007 12:48