1 / 1 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
|
1 | |
AutoFit объединённой ячейки. ColumnWidth и Columns(n).Width17.09.2006, 04:24. Показов 14918. Ответов 7
Метки нет Все метки)
(
Тема тут не раз обсуждалась, но внятного решения так и не представлено.
Напомню проблему. В некоторой ОБЪЕДИНЁННОЙ ячейке (ячейке, созданной объединением двух или более ячеек) с установленным свойством "переносить по словам" находится длинный текст. Если этот текст не входит весь в видимую часть ячейки, то расширить автоматически строку не получится, т.к. метод "Автоподбор высоты" (AutoFit) у данной ячейки не работает. В форумах предлагалось следующий метод: а) поместить необходимый текст в какую-нибудь одну ячейку б) установить для неё ширину и формат текста как у объединённой ячейки в) применить к новой ячейки "Автоподбор высоты" (AutoFit) г) получившуюся высоту новой ячейки установить у объединённой ячейки. В связи с этим возникают вопросы. Свойство ColumnWidth даёт не совсем верную ширину ячеек в следующем смысле: если посчитать ширину объединённой ячейки как ширину столбцов, в которых она расположена и установить получившуюся ширину у простого одного столбца, то реальная ширина одного столбца будет немного меньше, чем реальная ширина столбцов объединённой ячейки. Реальную ширину даёт свойство Width. Но у меня получается с помощью Width (напр., Range("D:F").Width) только получить ширину столбцов. А установить ширину (напр., Range("A").Width=100) не получается, т.к. выскакивает ошибка 1004. Всё-таки, у кого-нибудь есть чёткое решение данной проблемы? ОЧЕНЬ ЖЕЛАТЕЛЬНО в виде подробного описания, по пунктам, а не умничания типа "ищите где-то и обрящете что-то...". Windows 98, Office 97
0
|
17.09.2006, 04:24 | |
17.09.2006, 04:24 | |
Ответы с готовыми решениями:
7
Вызов формы из объединенной ячейки Переход объединенной ячейки на новую строку
|
2 / 2 / 0
Регистрация: 16.04.2012
Сообщений: 24
|
||||||
21.09.2006, 03:41 | 2 | |||||
а если поступить например так?
исходим из 3 положений: 1. ширина объедененной ячейки точно ровна ширине необедененных ячеек входящих в нее 2. столбец (без учета объеденения) имеет одинкаовую ширину по всей длинне 3. строка - например - последняя у нас не занята на основе этого строим код:
можно много чего накрутить еще - проверку последней строки (входящих в нтересующий диапазон ячеек) на объедененность, выбор альтернативного варианта и прочее - но мне была интересна сама идея решения а не кокретная реализация. впрочем если у вас возникнут проблемы - пишите - постараюсь сделать функциональный код ответил - а потом подумал... возможно в E97 нет всех тех объектов и свойств которые применились... хотя маловероятно...
0
|
1 / 1 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
|
27.09.2006, 18:29 [ТС] | 3 |
Вначале отвечу на предыдущий ответ игория, потом следущим сообщением - своё решение.
А по поводу
0
|
2 / 2 / 0
Регистрация: 16.04.2012
Сообщений: 24
|
|
27.09.2006, 20:13 | 4 |
вам шашечки или ехать?
если шашечки, то: свойство width объекта range имеет формат readonly - отсюда и вылетающая ошибка свойство width как и свойство columnwidth описывают одно и то же, но в разных единицах - поэтому говорить о том что свойство columnwidth вам не очень подходит потому чтоне точное... - оно не менее точное чем width а если ехать, то: ширина объедененной ячейки точно ровна ширине необедененных ячеек входящих в нее независимо от единиц измерения и применяемых методов или свойств к постам ниже: да, я ошибся.
0
|
1 / 1 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
||||||
27.09.2006, 21:15 [ТС] | 5 | |||||
игорию.
1. Выдели столбцы A:E 2. Установи ширину каждого равной 5 3. Установи ширину столбца F равной 25 (т.е. как сумму ширин пяти предыдущих) 4. У строки 1 установи: - шрифт: Arial, обычный, 11 пт - выравнивание: переносить по словам 5. Объедини ячейки A1:E1 6. В объединённую ячейку внеси текст "Ну, игорий, ты юморист!" 7. В ячейку F1 также внеси текст "Ну, игорий, ты юморист!" Если всё правильно сделал, то текст в ячейке F1 не входит в одну строку, а в объединённой ячейке - входит.Вот код, который всё сделает сам. В конце его выполнения показывается истинная ширина ячеек. Т. е. Width.
0
|
1 / 1 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
||||||
27.09.2006, 21:18 [ТС] | 6 | |||||
Что получилось у меня и чем пока пользуюсь. Описание кода, по возможности подробное, в самом коде.
0
|
1 / 1 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
||||||
28.09.2006, 21:38 [ТС] | 7 | |||||
Код ниже немного подкорректирован, а именно:
1. Уточнена формула расчёта ширины одного столбца (в символах), равной общей ширине объед. ячейки 2. Удалены не очень нужные процедуры (лишние расчёты, подгонка) в соотвествии с п.1 и из предположения, что общая ширина объед. ячейки больше 1 (симв). 3. Удалены комментарии и прочее
Код простой, пояснения не требует. Кроме, пожалуй, строки с Range(MyRanAdr).Cells(1, 1).ColumnWidth = (Range(MyRanAdr).Width - 3.75) / 4.5. Здесь: 3.75 - размер "боковушек" (отступов по краям) у ячейки (ширина в пт); 4.5 - ширина в пт одного символа стиля Normal (т.е. единицы измерения методом ColumnWidth)
0
|
1 / 1 / 0
Регистрация: 08.05.2011
Сообщений: 40
|
||||||
29.09.2006, 18:21 [ТС] | 8 | |||||
Мой предыдущий ответ с подкорректированным кодом имеет очень жуткий недостаток. Он работает только с тем стилем Normal, для которого рассчитаны коэффициенты ширин символа и краёв столбца.
Теперь исправляю. Сначала отдельно выкладываю код MiddEdgeWidth с комментариями. Он определяет ширину в пт середины и краёв для стиля Normal в активной рабочей книге. А после - RowHeightFiting3 - итоговый код подгонки высоты объединённой ячейки с учётом текущего стиля Normal. Код:
Т.к. необходимость этой манипуляции зависит от желания пользователя, то в данном коде эта процедура не отражена! То же самое, если изначальная высота объединённой ячейки была больше, чем после Autofit. Но т.к., если объединённая ячейки состоит из нескольких низеньких строк, а сам текст входит целиком в ячейку, то после Autofit может возникнуть ошибка (из-за попытки установить высоту первой строки в виде отрицательного значения). Поэтому лучше оставить изначальную высоту ячейки. И эта процедура отражена в коде (блок If в конце). Вроде, понятно объяснил....
1
|
29.09.2006, 18:21 | |
29.09.2006, 18:21 | |
Помогаю со студенческими работами здесь
8
Разбираем макрос автоподбора высоты строк в объединённой ячейки функция ВПР как добавить значение из объединенной ячейки Установка DBGrid columns при выводе через запрос SQLquery (обычный вывод в editing DBGrid Columns все настраивается) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Ошибка "Cleartext HTTP traffic not permitted" в Android
hw_wired 13.02.2025
При разработке Android-приложений можно столнуться с неприятной ошибкой "Cleartext HTTP traffic not permitted", которая может серьезно затруднить отладку и тестирование. Эта проблема особенно. . .
|
Изменение версии по умолчанию в NVM
hw_wired 13.02.2025
Node Version Manager, или коротко NVM - незаменимый инструмент для разработчиков, использующих Node. js. Многие сталкивались с ситуацией, когда разные проекты требуют различных версий Node. js,. . .
|
Переименование коммита в Git (локального и удаленного)
hw_wired 13.02.2025
Git как система контроля версий предоставляет разработчикам множество средств для управления этой историей, и одним из таких важных средств является возможность изменения сообщений коммитов. Но зачем. . .
|
Отличия Promise и Observable в Angular
hw_wired 13.02.2025
В веб-разработки асинхронные операции стали неотъемлимой частью почти каждого приложения. Ведь согласитесь, было бы странно, если бы при каждом запросе к серверу или при обработке больших объемов. . .
|
Сравнение NPM, Gulp, Webpack, Bower, Grunt и Browserify
hw_wired 13.02.2025
В современной веб-разработке существует множество средств сборки и управления зависимостями проектов, каждое из которых решает определенные задачи и имеет свои особенности. Когда я начинаю новый. . .
|
Отличия AddTransient, AddScoped и AddSingleton в ASP.Net Core DI
hw_wired 13.02.2025
В современной разработке веб-приложений на платформе ASP. NET Core правильное управление зависимостями играет ключевую роль в создании надежного и производительного кода. Фреймворк предоставляет три. . .
|
Отличия между venv, pyenv, pyvenv, virtualenv, pipenv, conda, virtualenvwrapper, poetry и другими в Python
hw_wired 13.02.2025
В Python существует множество средств для управления зависимостями и виртуальными окружениями, что порой вызывает замешательство даже у опытных разработчиков. Каждый инструмент создавался для решения. . .
|
Навигация с помощью React Router
hw_wired 13.02.2025
React Router - это наиболее распространенное средство для создания навигации в React-приложениях, без которого сложно представить современную веб-разработку. Когда мы разрабатываем сложное. . .
|
Ошибка "error:0308010C:digital envelope routines::unsupported"
hw_wired 13.02.2025
Если вы сталкиваетесь с ошибкой "error:0308010C:digital envelope routines::unsupported" при разработке Node. js приложений, то наверняка уже успели поломать голову над её решением. Эта коварная ошибка. . .
|
Подключение к контейнеру Docker и работа с его содержимым
hw_wired 13.02.2025
В мире современной разработки контейнеры Docker изменили подход к созданию, развертыванию и масштабированию приложений. Эта технология позволяет упаковать приложение со всеми его зависимостями в. . .
|