При заполнение налоговых накладных столкнулся с проблемой подбора шрифта для заполнения полей - или маленький или не помещается - в зависимости от длины названия предприятия. Написал макрос - вроде подбирает правильно, но есть несколько проблем. 1. не получается автоматически создать промежуточную ячейку с размером объединенных ячеек (которую нужно подобрать по шрифту) выставил в ручную 2. остаются внутри ячейки свободные поля на которые можно было бы увеличить шрифт.
Был бы очень благодарен за доработку макроса.
Макрос запускается по ENTER в поле № договора (ячейка DE20)
При заполнение налоговых накладных столкнулся с проблемой подбора шрифта для заполнения полей - или маленький или не помещается - в зависимости от длины названия предприятия. Написал макрос - вроде подбирает правильно, но есть несколько проблем. 1. не получается автоматически создать промежуточную ячейку с размером объединенных ячеек (которую нужно подобрать по шрифту) выставил в ручную 2. остаются внутри ячейки свободные поля на которые можно было бы увеличить шрифт.
Был бы очень благодарен за доработку макроса.
Макрос запускается по ENTER в поле № договора (ячейка DE20)berya
Ускорить можно разными способами и до разной степени... Например, как вариант, оптимизировать ваш код. У вас там много лишних действий... (см. вложенный файл. код прокомментировал)
Макрос запускается по ENTER в поле № договора (ячейка DE20)
Кстати, запуск макроса у вас был назначен на нажатие Enter, поэтому вызывался ПРИ КАЖДОМ нажатии Enter, В ЛЮБОЙ ячейке, к тому же, при каждом перемещении по ячейкам у вас снова и снова происходит назначение вашего макроса на нажатие Enter. Можете объяснить зачем? Ведь достаточно однократного назначения.
[p.s.]А если нужно очень быстро вычислять высоту строки, то через API получаете параметры используемого в ячейке шрифта (высоту и ширину символа) и подбираете размер шрифта, зная высоту строки (если не включен перенос по словам, то достаточно знать только высоту символа, а если включен, то по средней ширине символа рассчитываете длину одной строки в ячейке и, зная кол-во символов в тексте, легко получаете кол-во строк в ячейке (учитывая, что перенос слов по пробелу), а следовательно и общую высоту текста в ячейке)[/p.s.]
Ускорить можно разными способами и до разной степени... Например, как вариант, оптимизировать ваш код. У вас там много лишних действий... (см. вложенный файл. код прокомментировал)
Макрос запускается по ENTER в поле № договора (ячейка DE20)
Кстати, запуск макроса у вас был назначен на нажатие Enter, поэтому вызывался ПРИ КАЖДОМ нажатии Enter, В ЛЮБОЙ ячейке, к тому же, при каждом перемещении по ячейкам у вас снова и снова происходит назначение вашего макроса на нажатие Enter. Можете объяснить зачем? Ведь достаточно однократного назначения.
[p.s.]А если нужно очень быстро вычислять высоту строки, то через API получаете параметры используемого в ячейке шрифта (высоту и ширину символа) и подбираете размер шрифта, зная высоту строки (если не включен перенос по словам, то достаточно знать только высоту символа, а если включен, то по средней ширине символа рассчитываете длину одной строки в ячейке и, зная кол-во символов в тексте, легко получаете кол-во строк в ячейке (учитывая, что перенос слов по пробелу), а следовательно и общую высоту текста в ячейке)[/p.s.]KSV