AutoFit в Excel
Модераторы: m0p3e, edward_K, Модераторы
-
- Постоянный обитатель
- Сообщения: 150
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Иркутск
- Контактная информация:
AutoFit в Excel
Может кто сталкивался...
Как сделать xlAutoFit на ячейку, растянутую на на несколько колонок (Merged)? Помогло бы xlGetColumnWidth, но такой функции нет.
Или хотя бы xlSetActiveCell, чтоб не создавать кучу bas-модулей.
Как сделать xlAutoFit на ячейку, растянутую на на несколько колонок (Merged)? Помогло бы xlGetColumnWidth, но такой функции нет.
Или хотя бы xlSetActiveCell, чтоб не создавать кучу bas-модулей.
-
- Посетитель
- Сообщения: 40
- Зарегистрирован: 26 сен 2005, 18:29
- Откуда: Р. Беларусь ИП "ТОП СОФТ"
Нужна функция для использования в випе, или же родная Excel'евская?!
Если из Випа :
xlAutoFit
Function xlAutoFit(RawU : longint; ColL : longint; RawD : longint; ColR : longint) : boolean;
Для ячеек из заданного диапазона (стандартное форматирование Auto Fit)
Возвращает результат операции.
RawU : longint; ColL : longint; RawD : longint; ColR : longint
координаты диапазона
Если из Випа :
xlAutoFit
Function xlAutoFit(RawU : longint; ColL : longint; RawD : longint; ColR : longint) : boolean;
Для ячеек из заданного диапазона (стандартное форматирование Auto Fit)
Возвращает результат операции.
RawU : longint; ColL : longint; RawD : longint; ColR : longint
координаты диапазона
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Может быть уважаемый Тангар поделится свежей докой по Экселевским ф-ям? А мы обязуемся обновить ее в ОПЫТеTangar писал(а):Нужна функция для использования в випе, или же родная Excel'евская?!
Если из Випа :
xlAutoFit
Function xlAutoFit(RawU : longint; ColL : longint; RawD : longint; ColR : longint) : boolean;
Для ячеек из заданного диапазона (стандартное форматирование Auto Fit)
Возвращает результат операции.
RawU : longint; ColL : longint; RawD : longint; ColR : longint
координаты диапазона
-
- Местный житель
- Сообщения: 2898
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: AutoFit в Excel
xlAutoFit раздвигает ячейку по ширие, а есть какая-нибудь функция, которая раздвигала бы ячейку по высоте, не меняя ширины?
-
- Местный житель
- Сообщения: 1089
- Зарегистрирован: 04 сен 2008, 11:27
- Откуда: Москва
- Контактная информация:
Re: AutoFit в Excel
считайте символы, делите на сколько там влазит в строчку по ширине и примерно выставляйте ширину функцией )Алексей писал(а):xlAutoFit раздвигает ячейку по ширие, а есть какая-нибудь функция, которая раздвигала бы ячейку по высоте, не меняя ширины?
Время ведет!
-
- Местный житель
- Сообщения: 2898
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: AutoFit в Excel
Я через матрицу в эксель пишу... ) есть способ нормальный? 

-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: AutoFit в Excel
Если у вас высота ячеек авто(не таскали мышкой или не ставили высоту руками) и текст не
объединеных ячейках, то xlWrapText прекрасно работает. Я обычно делаю шаблон, в котором сначала выставляю форматы по столбцам, потом по строкам шапки. После вывода матрицы в файл - xlWrapText, это приводит к автоподбору высоты. Если же есть объединение ячеек, то и автоподбор высоты в Excel не будет работать и приходится выставлять высоту руками. У вас еще есть возможность выполнять/импортировать свои макросы, но если в Excel не найдете инструмента, то вам ничего не поможет.
объединеных ячейках, то xlWrapText прекрасно работает. Я обычно делаю шаблон, в котором сначала выставляю форматы по столбцам, потом по строкам шапки. После вывода матрицы в файл - xlWrapText, это приводит к автоподбору высоты. Если же есть объединение ячеек, то и автоподбор высоты в Excel не будет работать и приходится выставлять высоту руками. У вас еще есть возможность выполнять/импортировать свои макросы, но если в Excel не найдете инструмента, то вам ничего не поможет.
-
- Местный житель
- Сообщения: 2898
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: AutoFit в Excel
Да, уже загуглил, что при объединении ячеек не получится, а шаблон мне дали как раз такой что в шапке куча таких ячеек.
Будут настаивать, заставлю переделать шаблон и избавиться от объединенных.
Спасибо.
Будут настаивать, заставлю переделать шаблон и избавиться от объединенных.
Спасибо.
-
- Местный житель
- Сообщения: 1846
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Re: AutoFit в Excel
Смотря ,кнч. что на листе там "наверчено".
Но, если просто открыть новую книгу, и вбить там какой то текст разной длины, скажем на первых пяти строках, путь с колонки B
а зачем объединить ячейки с В по F по каждой из этих строчек, и выставить :
- по горизонтали левый отступ
- по вертикали по нижнему краю
- переносить по словам
то запустив макроса :
получаем что нужно
Но, если просто открыть новую книгу, и вбить там какой то текст разной длины, скажем на первых пяти строках, путь с колонки B
а зачем объединить ячейки с В по F по каждой из этих строчек, и выставить :
- по горизонтали левый отступ
- по вертикали по нижнему краю
- переносить по словам
то запустив макроса :
Код: Выделить всё
Sub Test123()
Dim fromRow, toRow As Long
fromRow = 1
toRow = 5
ActiveSheet.Cells(1, 1).Select
ReDim columnWidths(2 To 6) As Long
colWidth = 0
For colNo = LBound(columnWidths) To UBound(columnWidths):
columnWidths(colNo) = ActiveSheet.Columns(colNo).ColumnWidth:
colWidth = colWidth + columnWidths(colNo)
Next
colNo = LBound(columnWidths)
Columns(colNo).ColumnWidth = colWidth
For rowNo = fromRow To toRow
Set cell = Cells(rowNo, colNo)
If cell.MergeCells And cell.Address = cell.MergeArea.Cells(1).Address Then
Set ma = cell.MergeArea
With ma
.UnMerge:
.EntireRow.AutoFit
.Merge
End With
End If
Next
Columns(LBound(columnWidths)).ColumnWidth = columnWidths(LBound(columnWidths))
End Sub