|
![]() |
#1 |
Дмитрий Ерин
|
Цитата:
Сообщение от andy239
rangeCOM.EntireRow().autoFit(); - не компилируется.
![]() Аксаптовский компилятор заранее ничего не знает о методах COM-объектов (в частности о возвращаемых ими значениях). Поэтому ему невдомёк, что метод EntireRow() вернет вам экземпляр класса. Все проверки идут уже на этапе runtime. Кстати, по теме вопроса: будьте внимательны при использовании AutoFit() - он может не сработать, если используется объединение ячеек. В этом случае приходится выкручиваться извратными способами ![]()
__________________
![]() |
|
![]() |
#2 |
Участник
|
AutoFit() для объединенных ячеек
Цитата:
Сообщение от Ruff
Кстати, по теме вопроса: будьте внимательны при использовании AutoFit() - он может не сработать, если используется объединение ячеек. В этом случае приходится выкручиваться извратными способами
![]() ![]() |
|
![]() |
#3 |
Дмитрий Ерин
|
Цитата:
Сообщение от Plushy
Расскажите, пожалуйста, про эти самые извратные способы
![]() Суть в следующем: исходим из того, что autofit работает для обычных ячеек, но не работает для объединенных. Таким образом берем на листе (например, где-нибудь сбоку, за "полями") дополнительный столбец (без каких либо объединений), устанавливаем ему такую же ширину, как и у требуемой объединенной ячейки. И затем скрываем его. При экспорте заполняем одними и теми же данными как объединенную (видимую) ячейку, так и обычную ячейку скрытого столбца (в той же строке). И после этого выделяем всю строку и применяем к ней autofit. Высота скорректируется для всей строки, а благодаря равенству ширины требуемой и скрытой ячеек, текст аккуратно впишется в том числе и в объединенной ячейке. PS: Речь идет об объединении "по горизонтали", то есть в пределах одной строки. Как обстоит дело с объединением нескольких строк, не знаю - не сталкивался.
__________________
![]() |
|
|
За это сообщение автора поблагодарили: alex55 (1), wedmak_dk (1), star52 (1). |
![]() |
#4 |
Участник
|
Спасибо за идею!
Цитата:
Сообщение от Ruff
Возможно, решение неоптимальное, и уж точно некрасивое, но оно работает и просто реализуется. Скажу сразу, идею подсмотрел на одном из форумов, посвященных VBA.
Суть в следующем: исходим из того, что autofit работает для обычных ячеек, но не работает для объединенных. Таким образом берем на листе (например, где-нибудь сбоку, за "полями") дополнительный столбец (без каких либо объединений), устанавливаем ему такую же ширину, как и у требуемой объединенной ячейки. И затем скрываем его. При экспорте заполняем одними и теми же данными как объединенную (видимую) ячейку, так и обычную ячейку скрытого столбца (в той же строке). И после этого выделяем всю строку и применяем к ней autofit. Высота скорректируется для всей строки, а благодаря равенству ширины требуемой и скрытой ячеек, текст аккуратно впишется в том числе и в объединенной ячейке. PS: Речь идет об объединении "по горизонтали", то есть в пределах одной строки. Как обстоит дело с объединением нескольких строк, не знаю - не сталкивался. |
|