Всем доброго дня. Я знаю точные размеры ячеек в сантиметрах и необходимо реализовать макрос, который мог бы пересчитать значения в пикселях в сантиметры и изменить высоту и ширину ячейки. Прилагаю файл. В нем серыми полями закрашены ячейки, в которых выставлены значения в сантиметрах. я не знаю отношения пикселя к сантиметру. Очень прошу помощи. не смог найти ничего подобного на форуме.
Подбор ширины и высоты ячейки в сантиметрах, макрос для изменения параметров ячейки исходя из заданных условий
16.05.2019 14:41:30
|
|
|
|
16.05.2019 14:46:59
|
|
|
|
16.05.2019 14:47:45
Такой ответ Вам подойдет?
|
|
|
|
16.05.2019 14:49:34
|
|
|
|
16.05.2019 14:50:44
|
|||
|
|
16.05.2019 14:52:03
Что Вы не сможете, воспользоватся функцией, которая там приведена (ConvertPointToCm)?
Изменено: |
|
|
|
16.05.2019 14:52:35
Дмитрий, попробуйте интегрировать в свой документ эту информацию:
|
|||
|
|
16.05.2019 15:03:14
ОК
А дальше как?) Хотелось что бы оно само считалось, имея значение в сантиметрах в сером поле |
|
|
|
16.05.2019 15:11:39
|
|||
|
|
16.05.2019 15:13:33
Даже приведенное относится к настройкам стандартным в 96dpi и которые могут быть изменены, что приведет к некорректности расчетов.
По вопросам из тем форума, личку не читаю.
|
|
|
|
16.05.2019 15:19:08
Dmitrii, значит не удосужились почитать по ссылке.
|
|
|
|
16.05.2019 16:32:19
Ivan.kh, не горячитесь.
для примера тс если взять 96dpi (а не 72) то ширина в 4 см 6го столбца должна быть равна 4*96/2,54=151,18 и если это использовать при Page Layout view, то по линейке это 4 см и будет, но если переключится в нормальный режим то 151 превратится 141 . Ширина (width) 105,75 а ширина столбца (ColumnWidth) 19,43 и установить его можно только через ColumnWidth. а его надо тоже рассчитать, а он не линейный судя по тому что я вижу :-( на просторах нашел безумный код
очень странно, что нет прямого варианта.
Изменено:
По вопросам из тем форума, личку не читаю.
|
|||
|
|
16.05.2019 20:42:40
Владимир
|
|||
|
|
16.05.2019 21:30:12
sokol92, Приветствую. Владимир, нет. думаю именно такой вызван незнанием что есть еще свойство Width :-)
1. Excel measures column width units based on the size (width) of the font you use in the Normal style в переводе Excel измеряет ширину столбца базируюсь ширине шрифта нормального стиля. 2. Выяснилось, что Application.CentimetersToPoints работает но этому значению соответвует Columns.Width только в режиме ActiveWindow.View = xlPageLayoutView 3. Реализовал было код с итерационным приближением для быстрого подбора но не сохранил, но принцип такой: 1. меняем ActiveWindow.View = xlPageLayoutView 2. Определеяем Application.CentimetersToPoints для нужной ширины в см 3. далее в цикле While сравниваем ABS(Columns.Width - Application.CentimetersToPoints( … )) > xxx погрешность 4. Меняем Columns.ColumnWidt н дельту с плюсом или минусом в зависимости от того куда нужно 5. корректируем дельту (уменьшаем) 6. повторяем 7.Возвращаем ActiveWindow.View = xlNormalView Но как-то сложно.
Изменено:
По вопросам из тем форума, личку не читаю.
|
|
|
|
20.05.2019 16:19:20
В общем и целом решения нет....
|
|
|
|
20.05.2019 22:31:47
Ну попробуйте, только в силу того что ведется подбор или возможно необходимо загрубить точность или возможны зависания, так как порой при одном и том же шаге изменения изменения происходят и нет, а в последнем случае идет зацикливание. Ну или сделать счетчик итераций и при достижении максимального, останавливать расчет.
Изменено:
По вопросам из тем форума, личку не читаю.
|
|
|
|
21.05.2019 17:00:29
Думал, что всё знаю о методах проверки бухгалтерского баланса, но чтобы с помощью линейки!?
Кстати, не поленился распечатать и проверить - Михаил прошел тест с блеском
Владимир
|
|
|
|
21.05.2019 17:21:11
sokol92, Владимир, приветствую. Блеск блеском, но как же мне было лениво это все делать :-). И методика кошмарна, это как перенос слов базируясь на ширине столбца, но реально варианта более не вижу, разве что рассчитывать соотношения исходя и on the size (width) of the font you use in the Normal style. Вроде пока искал аналоги натыкался на подобное. А то что выше, ну улучшенная версия найденного.
По вопросам из тем форума, личку не читаю.
|
|
|
|
21.05.2019 18:19:29
В своей практике использовал этот подход:
«Бритва Оккама» или «Принцип Калашникова»?
|
|
|
|
21.05.2019 19:07:04
Здравствуйте, Виталий! Спасибо Вам (и
Изменено:
Владимир
|
|
|
|
21.05.2019 19:49:33
|
|
|
|
21.05.2019 20:09:40
Михаил, практическая польза от метода Игоря несомненна, поскольку в >99% случаях стиль Normal не меняют (и не знают, как это сделать ). Поэтому, можно проверить стиль Normal:
Для маленьких значений ширины ячейки в стандартных случаях расчет по формуле, вероятно, можно уточнить. Но что-то мой коллега - бухгалтер (автор темы) совсем исчез...
Изменено:
Владимир
|
|||
|
|
21.05.2019 22:55:17
Кто ж говорит о бесполезности, тут скорее вопрос универсальности и эффективности. вот нашел по быстрому
По вопросам из тем форума, личку не читаю.
|
|||||
|
|
22.05.2019 12:33:19
БМВ, приветствую! Вижу, есть некоторые нюансы. Я использовал данную формулу от Игоря, для определения размера ячейки в пикселях (задаваемого пользователем) для вставки фото. Вполне подошло, стиль Normal не менял.
«Бритва Оккама» или «Принцип Калашникова»?
|
|||
|
|
22.05.2019 13:36:46
БМВ,Огромное спасибо.
Макрос отлично справляется. Теперь формирование Ворда занимает в разы меньше времени. |
||||
|
|
|||