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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2017, 00:01   #1
serg1992
Новичок
Джуниор
 
Регистрация: 25.03.2017
Сообщений: 4
Вопрос Необходимо дописать макрос, который разделяет фразу на столбики по условию

Доброго времени суток!

Есть макрос, который пилит фразу на столбики. В одном столбике получается 33 символа (учитывая и пробелы), в другом - всё остальное.
Макрос собирал из разных форумов, кое-как получился )

Появилась мысль чуток его допилить. В прикреплённом файле две проблемы разобраны:
1. Если текста меньше, чем 33 символа, то в один столбик фраза не выписывается, а выписываются в оба столбика #ЗНАЧ!. Хотелось бы, чтобы фраза выписывалась в 1 столбик, а во втором было просто пусто. РЕШЕНО!
2. Фраза делится на столбики, если в первом столбике последнее слово состоит из 3 и менее символов (предлоги обычно) - оно тоже переносится во второй столбик.
3. Ещё оказывается с английскими буквами не в ладах... Тоже поправить было бы хорошо. РЕШЕНО!
4. (не беспокоит, но для достижения идеала) - это когда ничего нет вообще и пишется #ЗНАЧ! в обоих столбиках. Пустота должна быть. РЕШЕНО!

Спасибо!
Изображения
Тип файла: jpg 2017-03-25_234710.jpg (58.8 Кб, 122 просмотров)
Вложения
Тип файла: xls Раздвоить столбики.xls (146.0 Кб, 15 просмотров)

Последний раз редактировалось serg1992; 26.03.2017 в 01:52.
serg1992 вне форума Ответить с цитированием
Старый 26.03.2017, 01:31   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

см. вложение
Вложения
Тип файла: xls Раздвоить столбики.xls (150.0 Кб, 15 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.03.2017, 01:45   #3
serg1992
Новичок
Джуниор
 
Регистрация: 25.03.2017
Сообщений: 4
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
см. вложение
СПАСИБО БОЛЬШУЩЕЕ!

3 из 4 решено )
serg1992 вне форума Ответить с цитированием
Старый 26.03.2017, 02:14   #4
AlexM12
Форумчанин
 
Аватар для AlexM12
 
Регистрация: 29.08.2012
Сообщений: 209
По умолчанию

Еще вариант функций
Код:
Function uuu1$(t$)
    Dim i&: i = 33
    uuu1 = IIf(Len(t) > i, Left(Left(t, i), InStrRev(Left(t, i), " ") + (Len(t) > 0)), t)
End Function

Function uuu2$(t$)
uuu2 = Trim(Replace(t, uuu1(t), ""))
End Function
и формул
Код:
=ЛЕВБ(B11;ПРОСМОТР(33;ПОИСК("? ";B11&" ";СТРОКА($1:33))))
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(B11;C11;))
Вложения
Тип файла: xls Раздвоить столбики_01.xls (146.0 Кб, 15 просмотров)
Алексей М.
AlexM12 вне форума Ответить с цитированием
Старый 26.03.2017, 02:25   #5
serg1992
Новичок
Джуниор
 
Регистрация: 25.03.2017
Сообщений: 4
По умолчанию

Цитата:
Сообщение от AlexM12 Посмотреть сообщение
Еще вариант функций
Спасибо )

Подскажите, а этот вопрос - это уже дикость? Невозможно так сделать формулами?

2. Фраза делится на столбики, если в первом столбике последнее слово состоит из 3 и менее символов (предлоги обычно) - оно тоже переносится во второй столбик.

Последний раз редактировалось serg1992; 26.03.2017 в 02:30.
serg1992 вне форума Ответить с цитированием
Старый 26.03.2017, 09:10   #6
AlexM12
Форумчанин
 
Аватар для AlexM12
 
Регистрация: 29.08.2012
Сообщений: 209
По умолчанию

В два этапа для первой части фразы. формула первого этапа, второго.
Код:
=ЛЕВБ(B2;ПРОСМОТР(33;ПОИСК("? ";B2&" ";СТРОКА($1:$33))))
=ЛЕВБ(B2;ПРОСМОТР(33;ПОИСК("? ";B2&" ";СТРОКА($1:$33)))-СУММ(НАИБОЛЬШИЙ(ЕСЛИ(ЕЧИСЛО(ПОИСК("? ";C2&" ";СТРОКА($1:$33)));ПОИСК("? ";C2&" ";СТРОКА($1:$33)));{1;5})*{1;-1}))
Формула для второй части фразы
Код:
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(B2;D2;))
Вложения
Тип файла: xls Раздвоить столбики_02.xls (47.5 Кб, 18 просмотров)
Алексей М.
AlexM12 вне форума Ответить с цитированием
Старый 26.03.2017, 13:34   #7
serg1992
Новичок
Джуниор
 
Регистрация: 25.03.2017
Сообщений: 4
Хорошо

Цитата:
Сообщение от AlexM12 Посмотреть сообщение
В два этапа для первой части фразы. формула первого этапа, второго.
Спасибо, Алексей М . Очень помогли.
serg1992 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++. Необходимо дописать файл foo.h. heret1c Помощь студентам 3 27.05.2013 11:38
дописать 1 код который не знаю alekseykrut1992 C++ Builder 3 24.10.2011 01:25
Необходимо доработать макрос, который создает шаблон Androgen13 Microsoft Office Excel 10 24.07.2011 22:10
Макрос вставки файлов в листы-Необходимо изменить ниже приведённый макрос as-is Microsoft Office Excel 4 25.02.2010 07:51
В БД необходимо создать макрос, суть которого расчет итоговой строки по условию mex32 Microsoft Office Excel 31 01.04.2009 13:05