Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Количество "строк" текста в одной ячейке / 10 сообщений из 10, страница 1 из 1
12.11.2003, 09:24
    #32320977
Количество "строк" текста в одной ячейке
Тут вот несколькими постами ниже рассматривался вопрос про размер ячейки - у меня трабл немного похожий, но очевидного решения не нашел.

В ячейку может быть записано предложение из разного количества слов разной длины. Ширина ячейки пусть будет фиксированная. Работает перенос текста по словам. Нужно посчитать количество "строчек в ячейке", которое по факту занимает предложение. Вариант с анализом состава предложения, поиска пробелов и моделирования логики переноса строк мне кажется слишком навороченным. Можно ли допросить Excel на предмет того сколько "строчек в ячейке" он выделил под текст? Ведь он довольно быстро делает автоматическую высоту ячеек...Или спасение только в анализе текста

Буду благодарен за советы, поиском порылся - ничего не нашел:(
...
Рейтинг: 0 / 0
12.11.2003, 14:39
    #32321553
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество "строк" текста в одной ячейке
Вот пример, из которого следуют, скорее ограничения, нежели панацея:
Код: plaintext
1.
2.
3.
4.
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
 If .Address =  "$A$1 " Then .Offset( 0 ,  1 ) = .EntireRow.Height / .Worksheet.StandardHeight
End With
End Sub
...
Рейтинг: 0 / 0
12.11.2003, 15:32
    #32321668
Hibernate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество "строк" текста в одной ячейке
тебе нужна высота ячейки, или именно количество строк?
...
Рейтинг: 0 / 0
12.11.2003, 15:45
    #32321699
Количество "строк" текста в одной ячейке
Эту мысль я тоже подумал - она была бы вполне рабочей если бы XL не мудрил с переносом - так в строке высотой 31,5 (по умолчанию минимум autofit'a) может быть и одна и две строки 12-м шрифтом, тут чисто геометрический подход дает некую дельту, вероятность или недоучета строки или ее переучета... Но спасибо, описание натолкнуло на идею проверить новую пару вариантов. Вот понять бы по какому принципу сам autofit работает...
...
Рейтинг: 0 / 0
12.11.2003, 15:54
    #32321719
Количество "строк" текста в одной ячейке
To Hibernate

Именно количество "строчек" текста в ячейке, высоту я знаю как найти, да и это где-то недалеко здесь уже даже обсуждалось


У меня до 10000-20000 строк в одном файле

В каждой строчке есть текстовая ячейка с текстом

"Спасибо товарищу сталину за наше счастливое детство"
или в этом духе но раз в 10 длиннее
12 шрифт
Когда я получаю файл то делаю перенос слов в ячейке и автоподборку высоты.

"Спасибо товарищу
сталину за наше
счастливое
детство"

Но из-за ряда особенностей (мелкий шрифт, масштабирование 41 процент) на бумаге это все коряво выглядит при печати - нижние строки не печатаются - им явно нужно расширить ячейку. Понимая сколько строчек получилось в ячейках я бы принудительно изменил высоту строки...
Типа три "строчки" - высота +10
Четыре - высота + 15 и т.д.

А иначе я всю Карелию на бумагу для принтера израсходую пока ошибки по факту править буду
...
Рейтинг: 0 / 0
12.11.2003, 16:23
    #32321794
Hibernate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество "строк" текста в одной ячейке
хм. а вариант - в каком-то другом листе взять тестово загнать нужную строчку в ячейку аналогичной ширины, сделать для ячейки autofit по высоте, получить высоту ячейки, и уже потом делать выводы о количестве строк?
...
Рейтинг: 0 / 0
12.11.2003, 16:50
    #32321868
Количество "строк" текста в одной ячейке
XL отводит одинаковую пограничную выстоту - так в ячейке высотой

от 17,25 до 31,5 включительно! - 1 "строчка"
от 31,5 включительно до 47,25 включительно - 2 строчки

Т.Е. в ячейке высотой 31,5 с непонятной вероятностью может оказаться как 1 так и 2 строчки и т.д. (соотв для др. пограничных значений высоты м.б. 2-3, 3-4, 4-5 строчек)
...
Рейтинг: 0 / 0
13.11.2003, 14:44
    #32323085
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Количество "строк" текста в одной ячейке
Может, переформулировать задачу:
Как контролируемо напечатать строку произвольной длины в Excel'е?
1. Определяешь максимальную длину строки, помещающуюся в ячейку без переноса.
2. Извлекаешь текст из ячейки и режешь его на куски "не более чем".
3. Заполняешь кусками последовательные ячейки вниз.
Переносишь содержимое исходных Excel-ячеек в сободные ячейки первой строки.
4. etc.
...
Рейтинг: 0 / 0
13.11.2003, 15:28
    #32323178
Количество "строк" текста в одной ячейке
Иметь 4 кусочка текста в разных ячейках это в принципе неплохо для печати :) идея классная!
но таблица рабочая - т.е. текст после всех операций должен "физически" находиться в одной ячейке, а его туда из 4-х в нужном виде все-равно засунуть не получится:( ну если не пускать обратную процедуру:)

На текущий момент проблема "решена" путем подбора высоты в полуручном режиме (времени ушло - огого), но сама проблемка показалась занятной и на варианты решения я смотрю с интересом:)

Но на сформулированную проблему с печатью я думаю ответ получен приемлемый, спасибо!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
16.10.2019, 17:51
    #39877246
Количество "строк" текста в одной ячейке
Уххх, прошло 16 лет, но раз я нашел это обсуждение, возможно, когда-то кто-то тоже наткнется на этот текст.

Я нашел следующее решение: если ячейка объединенная, то у неё может быть высота как у двух ячеек, поэтому можно просто от каждой ячейки создать вниз ещё несколько и объединить их в неё (Range.Merge).

Чтобы не всплывало Alert, можно Application.DisplayAlerts = False (не забывать Application.DisplayAlerts = True в конце)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Количество "строк" текста в одной ячейке / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]