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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2013, 17:00   #1
AndyKKK
 
Регистрация: 26.01.2009
Сообщений: 4
По умолчанию Разделение текста на несколько ячеек

Помогите, пожалуйста, решить проблему. Есть файл в Excel, в котором в ячейках прописаны предложения. Нужно перенести эти предложения на другой лист файла. При этом размер ячейки ограничен 63 символами, поэтому длинное предложение нужно разбить на несколько ячеек не более 63 символа в один столбец. Второй столбец будет определять номер предложения в списке. Пример во вложении.
Вложения
Тип файла: rar Text.rar (4.3 Кб, 18 просмотров)

Последний раз редактировалось AndyKKK; 24.12.2013 в 17:14.
AndyKKK вне форума Ответить с цитированием
Старый 24.12.2013, 17:14   #2
roborrr
Математик
Форумчанин
 
Регистрация: 27.02.2011
Сообщений: 123
По умолчанию

вы забыли прикрепить вложение
roborrr вне форума Ответить с цитированием
Старый 25.12.2013, 17:38   #3
AndyKKK
 
Регистрация: 26.01.2009
Сообщений: 4
По умолчанию

Уважаемые программисты, неужели нет решения этой проблемы?
AndyKKK вне форума Ответить с цитированием
Старый 25.12.2013, 18:49   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вот функция, которая строку s разобьет на части, располагая символы с не белее чем на N позиций друг от друга
Код:
Function InsCN(ByVal s As String, c As Long, N As Long) As String
  Dim p As Long
  p = InStr(StrReverse(s), Chr(c))
  Do While Len(s) - p > N
    p = p + N + 1 - InStr(StrReverse(Left(s, p + N + 1)), " ")
    s = Left(s, p) & Chr(c) & Right(s, Len(s) - p - 1)
  Loop
  InsCN = s
End Function
вот пример использования
Код:
Sub UseInsCN()
  Dim s As String, ns As String, a()
  s = "Помогите, пожалуйста, решить проблему. Есть файл в Excel, в котором в ячейках прописаны предложения..."
  ns = InsCN(s, 9, 63)
  a = Application.Transpose(Split(ns, Chr(9)))
  [b2].Resize(UBound(a), 1).Value = a
  [a2].Resize(UBound(a), 1).FormulaR1C1 = "=len(rc[1])"
End Sub
в качестве исходного предложения использовал текст из сообщения #1.
на листе все выглядело так:

59 Помогите, пожалуйста, решить проблему. Есть файл в Excel, в
60 котором в ячейках прописаны предложения. Нужно перенести эти
56 предложения на другой лист файла. При этом размер ячейки
57 ограничен 63 символами, поэтому длинное предложение нужно
62 разбить на несколько ячеек не более 63 символа в один столбец.
59 Второй столбец будет определять номер предложения в списке.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 25.12.2013, 19:20   #5
AndyKKK
 
Регистрация: 26.01.2009
Сообщений: 4
По умолчанию

Спасибо, но нужно выводить не количество символов в ячейке, а порядковый номер предложения. Примерно вот так:
1 Есть файл в Excel, в котором в ячейках прописаны предложения
2 Нужно перенести эти предложения на другой лист файла.
3 При этом размер ячейки ограничен 63 символами, поэтому
3 длинное предложение нужно разбить на несколько ячеек не более
3 63 символа в один столбец.
4 Второй столбец будет определять номер предложения в списке
4 и повторятся на несколько ячеек одного предложения.
AndyKKK вне форума Ответить с цитированием
Старый 25.12.2013, 19:31   #6
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Решение практически то же, что и у Игоря.
Вложения
Тип файла: rar Text.rar (11.0 Кб, 21 просмотров)
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 26.12.2013, 04:35   #7
AndyKKK
 
Регистрация: 26.01.2009
Сообщений: 4
По умолчанию

Цитата:
Сообщение от kuklp Посмотреть сообщение
Решение практически то же, что и у Игоря.
Спасибо огромное! Вы сделали то, что мне нужно!
AndyKKK вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разделить и разнести данные одной ячеек в несколько указанных ячеек sasha555 Microsoft Office Excel 2 31.08.2013 14:24
Разделение массива на несколько массивов kpachbiu PHP 14 28.12.2010 16:03
Разделение данных на несколько ячеек d_adilet Microsoft Office Access 6 29.06.2010 09:28
Разделение интернета на несколько компов Retiz Компьютерное железо 11 10.10.2008 22:40
Разделение txt файла на несколько htm Tiger16 Фриланс 3 17.04.2008 22:40