| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > [Перенесено из VB6/MS Access]Как определить конец страницы в Excel |
| Автор: Шепталов 27.11.2003, 16:59 |
| Сразу расскажу обо всем. Выделена ячека в листе "sheet1" в колонке А. Строки в этом листе имеют разную высоту, следовательно, при печати на принтер на бумажных листах будет помещено разное количество строк. Итак, вопрос: КАК определить, будет ли выделенная ячейка находится в последней строке какого-либо n-ого бумажного листа, когда документ выведут на печать |
| Автор: hobotyara 27.11.2003, 17:34 |
| Делаешь новый документ. Там строки имеют одинаковую высоту. забиваешь первую колонку любым текстом, строк 70. делаешь разметку страницы и смотришь сколько строк попало на первую страницу. Например, при масштабе страницы 100% при высоте 12,75 получается 56 строк. Т.е. область печати занимает 714 чего-то там (пикселей или пунктов не помню) Дальше делаешь цикл от первой строки, до своей ячейки и суммируешь высоты строк. Если сумма поделилась на 714 нацело, значит твоя ячейка будет в последней строке. только тут нужно учесть, что пользователь может поменять масштаб страницы и поля, это может повлиять на результат. |
| Автор: Шепталов 28.11.2003, 15:37 |
| 2hobotyara Классно! Оказывается все элементарно! Глубокое вам человеческое спасибо! |
| Автор: Temnozor 29.11.2003, 14:02 |
| Все это может и сработает, но не изящно. В VBA есть такие объекты как HPageBreaks. Можно узнать где они лежат относительно нужной ячейки. |
| Автор: malor 16.7.2008, 18:00 | ||
А вот так прокатит если написать -
|
| Автор: malor 17.7.2008, 09:14 | ||
Делал
|
| Автор: mihanik 23.7.2008, 21:11 |
| malor, так задумано. |