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

Вход

Регистрация

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

 

= Мир MS Excel/Преобразовать один текст в другой по шаблону - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Преобразовать один текст в другой по шаблону (Макросы/Sub)
Преобразовать один текст в другой по шаблону
drugojandrew Дата: Вторник, 07.11.2017, 17:06 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день.
Пытаюсь сделать следующее.
Коротко:
Вот эту запись: "Приказ ИД от 12 мая 2017П II" преобразовать вот в эту: "170512REDO2". Подобных записей большое множество (пример приложен).

Подробно:
Есть названия директив. Самому файлу дается имя по определенному шаблону, например, "170512REDO2". А если эта директива упоминается в тексте, то ее пишут по-другому: "Приказ ИД от 12 мая 2017П II"
Расшифрую 170512REDO2:
17 - год
05 - месяц
12 - число
R - П (означает, что в директиву вносились изменения)
EDO - Приказ ИД
2 - II (означает, что в этот день это был второй приказ)
У меня есть список директив, названия которых записаны как в тексте, т.е. "Приказ ИД от 12 мая 2017П II". Мне нужно по этому списку составлять книгу в Индизайне. Для автоматической сборки мне нужно преобразовать запись как в тексте в запись как в названии файла: "170512REDO2".
Я в VBA не силён и смог написать только скрипт по замене соответствующих частей, т.е. Приказ ИД - EDO, мая - 05, П - R, II - 2. А как их расставить в правильной последовательности не знаю.
Далее приходится делить текст по столбцам и объединять в правильной последовательности через формулы. Хочу это упростить.
Помогите, плиз.
К сообщению приложен файл: Primer1.xls(45Kb)
 
Ответить
СообщениеДобрый день.
Пытаюсь сделать следующее.
Коротко:
Вот эту запись: "Приказ ИД от 12 мая 2017П II" преобразовать вот в эту: "170512REDO2". Подобных записей большое множество (пример приложен).

Подробно:
Есть названия директив. Самому файлу дается имя по определенному шаблону, например, "170512REDO2". А если эта директива упоминается в тексте, то ее пишут по-другому: "Приказ ИД от 12 мая 2017П II"
Расшифрую 170512REDO2:
17 - год
05 - месяц
12 - число
R - П (означает, что в директиву вносились изменения)
EDO - Приказ ИД
2 - II (означает, что в этот день это был второй приказ)
У меня есть список директив, названия которых записаны как в тексте, т.е. "Приказ ИД от 12 мая 2017П II". Мне нужно по этому списку составлять книгу в Индизайне. Для автоматической сборки мне нужно преобразовать запись как в тексте в запись как в названии файла: "170512REDO2".
Я в VBA не силён и смог написать только скрипт по замене соответствующих частей, т.е. Приказ ИД - EDO, мая - 05, П - R, II - 2. А как их расставить в правильной последовательности не знаю.
Далее приходится делить текст по столбцам и объединять в правильной последовательности через формулы. Хочу это упростить.
Помогите, плиз.

Автор - drugojandrew
Дата добавления - 07.11.2017 в 17:06
sboy Дата: Среда, 08.11.2017, 11:12 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1103
Репутация: 276 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Сделал из вашего скрипта UDF, результат в двух ячейках не совпал (корректен ли пример?)
К сообщению приложен файл: Primer1-1-.xls(48Kb)
 
Ответить
СообщениеДобрый день.
Сделал из вашего скрипта UDF, результат в двух ячейках не совпал (корректен ли пример?)

Автор - sboy
Дата добавления - 08.11.2017 в 11:12
Wasilich Дата: Среда, 08.11.2017, 12:34 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 320 ±
Замечаний: 0% ±

2003
смог написать только скрипт по замене соответствующих частей, т.е. Приказ ИД - EDO, мая - 05, П - R, II - 2. А как их расставить в правильной последовательности не знаю.

Вам предложили готовое решение.
Но, уж если Вы пытались решить задачу самостоятельно, то Вам надо было не замену делать, а назначать этим частям переменные с соответствующими значениями, а потом составить их (переменные) в нужном порядке. Что то, типа так. Если есть желание, для общего развития, можете поупражняться и с таким вариантом.
 
Ответить
Сообщение
смог написать только скрипт по замене соответствующих частей, т.е. Приказ ИД - EDO, мая - 05, П - R, II - 2. А как их расставить в правильной последовательности не знаю.

Вам предложили готовое решение.
Но, уж если Вы пытались решить задачу самостоятельно, то Вам надо было не замену делать, а назначать этим частям переменные с соответствующими значениями, а потом составить их (переменные) в нужном порядке. Что то, типа так. Если есть желание, для общего развития, можете поупражняться и с таким вариантом.

Автор - Wasilich
Дата добавления - 08.11.2017 в 12:34
drugojandrew Дата: Среда, 15.11.2017, 17:24 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
sboy, спасибо, работает. Но в один момент не учтен: при преобразовании П, ПА, ПБ и т.п. там есть просто "П" без дополнительных букв. "П" должно заменяться на "R". Если ее подставить в функцию, то происходит замена П в "Приказ" и как следствие "R" появляется везде. Пока не могу сообразить как это поправить...
 
Ответить
Сообщениеsboy, спасибо, работает. Но в один момент не учтен: при преобразовании П, ПА, ПБ и т.п. там есть просто "П" без дополнительных букв. "П" должно заменяться на "R". Если ее подставить в функцию, то происходит замена П в "Приказ" и как следствие "R" появляется везде. Пока не могу сообразить как это поправить...

Автор - drugojandrew
Дата добавления - 15.11.2017 в 17:24
sboy Дата: Среда, 15.11.2017, 17:55 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 1103
Репутация: 276 ±
Замечаний: 0% ±

Excel 2010
Проверяйте
К сообщению приложен файл: 5322199.xls(47Kb)
 
Ответить
СообщениеПроверяйте

Автор - sboy
Дата добавления - 15.11.2017 в 17:55
drugojandrew Дата: Среда, 15.11.2017, 18:12 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 80
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
sboy, спасибо, работает!
 
Ответить
Сообщениеsboy, спасибо, работает!

Автор - drugojandrew
Дата добавления - 15.11.2017 в 18:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Преобразовать один текст в другой по шаблону (Макросы/Sub)
Страница 1 из 11
Поиск:

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