|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.02.2012, 17:09 | #1 |
Новичок
Джуниор
Регистрация: 08.02.2012
Сообщений: 2
|
Разбить длинный текст по строкам.
Товарищи помогите решить задачу на VBA, сам что-то никак не вразумлю.
- Есть таблица, в ней включен авто перенос текста, соответственно строка принимает ту высоту которая необходима для внесения всего текста. - Требуется заполнить или переработать эту таблицу таким образом чтобы вместо авто переноса текст заполнялся в строки фиксированной длины и высоты. Прикрепляю пример. Заранее спасибо всем участникам форума за помощь. |
08.02.2012, 17:47 | #2 |
Форумчанин
Регистрация: 21.11.2010
Сообщений: 326
|
Как вариант
|
08.02.2012, 22:08 | #3 |
Новичок
Джуниор
Регистрация: 08.02.2012
Сообщений: 2
|
-> MCH
Спасибо огромное за ответ. Завтра на работе рассмотрю приложенный Вами код подробнее) Но на первый взгляд получилось не совсем корректно если внести более длинный текст (или же цифры) без пробела. Прикладываю вариант когда код не отработал так как я хотел. В частности, после обработки обратите внимание на строку №6. В ней больше символов чем отображается в ячейке. Еще раз спасибо Вам за отзыв. Последний раз редактировалось EA_Kortes; 08.02.2012 в 22:15. |
19.02.2015, 12:02 | #4 |
Регистрация: 05.04.2014
Сообщений: 5
|
Перенос длинного текста в строки заданной длины
Dim Text, StrocaDlina, Stroca1, Stroca1Dlina, Stroca2, Stroca2Dlina, Stroca3, Stroca3Dlina, Stroca4, Stroca4Dlina As Variant
Dim PosiciaPoisk1, PosiciaPoisk2, PosiciaPoisk3, PosiciaPoisk4, IscomText IscomText = " " Text = Range("A1") StrocaDlina = Len(Text) Range("B1").Value = StrocaDlina PosiciaPoisk1 = Range("B2") If PosiciaPoisk1 = Empty Or Text = Empty Then Stroca1 = Empty Else If PosiciaPoisk1 >= StrocaDlina Then Stroca1 = Text Stroca1Dlina = Len(Stroca1) Else If PosiciaPoisk1 < StrocaDlina Then Stroca1Dlina = InStr(PosiciaPoisk1, Text, IscomText, vbTextCompare) If Stroca1Dlina = 0 Then Stroca1 = Text Stroca1Dlina = Len(Stroca1) Else Stroca1 = Left(Text, Stroca1Dlina) End If End If End If End If Range("A2").Value = Stroca1 PosiciaPoisk2 = Range("B3") + Stroca1Dlina If PosiciaPoisk2 = Empty Or Stroca1 = Empty Or Text = Empty Then Stroca2 = Empty Else If PosiciaPoisk2 >= StrocaDlina And StrocaDlina > Stroca1Dlina Then Stroca2 = Right(Text, StrocaDlina - Stroca1Dlina) Stroca2Dlina = Len(Stroca2) Else If PosiciaPoisk2 < StrocaDlina Then Stroca2Dlina = InStr(PosiciaPoisk2, Text, IscomText, vbTextCompare) If Stroca2Dlina = 0 Then Stroca2 = Right(Text, StrocaDlina - Stroca1Dlina) Stroca2Dlina = Len(Stroca2) Else Stroca2 = Right(Left(Text, Stroca2Dlina), Stroca2Dlina - Stroca1Dlina) End If End If End If End If Range("A3").Value = Stroca2 |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
разбить текст на слова | yuliyayuliya | Помощь студентам | 2 | 05.04.2011 16:31 |
Как в комбобоксе cделать появление хинта при наведениии на длинный текст? | TwiX | Общие вопросы Delphi | 3 | 01.06.2010 15:31 |
Разбить текст на PHP | gamer123 | Помощь студентам | 0 | 11.02.2010 23:13 |
Не получается в Post запросе передать длинный текст | theYozh | Работа с сетью в Delphi | 17 | 18.05.2009 21:43 |
Как инфу от idwhois разбить по строкам? | jay-forum | Работа с сетью в Delphi | 4 | 12.01.2009 16:11 |