|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.11.2011, 10:10 | #1 |
Пользователь
Регистрация: 26.10.2010
Сообщений: 34
|
Проверка "вместимости" строк на лист при печати
Здравствуйте, форумчане.
Создаю в VBA акт учета товаров (таблица с большим количеством строк). Возникла проблема: акт может быть на нескольких листах (имеется в виду - при печати), но в конце каждого листа обязательно должна быть строка с итоговыми количеством и стоимостью товаров, описанных на этом листе. Наименование товара в ячейке может быть длинным и переноситься по строкам, т.е. высота строк таблицы не фиксированная. Как в VBA можно получить данные, после какой строки остальные на печатный лист на поместятся и нужно вставлять итоговую и разрыв со следующей страницей? Пока приходит в голову только мысль о подсчете суммарной высоты строк таблице и сравнении этого значения с "высотой" листа. |
23.11.2011, 10:18 | #2 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Смотрите в сторону коллекции Sheet.HPageBreaks.
Например, sheets("Лист1").HPageBreaks(1).Loca tion - диапазон (ячейка), НАД которой находится первый разрыв страницы. sheets("Лист1").HPageBreaks(1).Loca tion.Address - адрес этой ячейки.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
23.11.2011, 11:18 | #3 |
Пользователь
Регистрация: 26.10.2010
Сообщений: 34
|
Казанский, спасибо за помощь, что-то пока не получается, правда я в синтаксисе VBA не особо силен. Если не сложно, посмотрите, пожалуйста, где ошибка.
|
23.11.2011, 11:20 | #4 | |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 450
|
Цитата:
Код:
Тишина – самый громкий звук
|
|
23.11.2011, 11:35 | #5 | |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 450
|
Цитата:
Код:
Тишина – самый громкий звук
Последний раз редактировалось nerv; 23.11.2011 в 11:41. |
|
23.11.2011, 12:09 | #6 |
Пользователь
Регистрация: 26.10.2010
Сообщений: 34
|
nerv, спасибо - полезное дополнение, но мне все-таки нужно, чтобы находилась именно последняя строка на каждом печатном листе, чтобы вместо нее вставлять строку с итогами, а ее (найденную строку) переносить на следующий лист.
Мне б только условие в операторе выбора правильно прописать, а то при компиляции ошибка выдается... |
23.11.2011, 12:34 | #7 | |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 450
|
Цитата:
Утрированно: замените строку Код:
Код:
Тишина – самый громкий звук
|
|
23.11.2011, 12:54 | #8 |
Пользователь
Регистрация: 26.10.2010
Сообщений: 34
|
nerv, большое спасибо.
|
24.11.2011, 10:53 | #9 |
Пользователь
Регистрация: 26.10.2010
Сообщений: 34
|
И все же помогите, пожалуйста, найти ошибку в коде. В приложенном ранее файле я пробовал на отвлеченном примере реализовать метод, предложенный господином Казанским. Суть заключалась в том, чтобы проверить, является ли проверяемая строка строкой, над которой находится разрыв со следующей страницей, потому что в алгоритме моей основной задачи (в моем вИдении) добавление строк осуществляется последовательно следующим образом:
1. В акт добавляется строка с данными. 2. Производится проверка, будет ли над этой строкой разрыв. 3а. Если разрыв будет, то перед предыдущей строкой вставляется строка с итогами и происходит переход к пункту 1. 3б. Если разрыва нет, то происходит переход к пункту 1. Но в своем примере, я, видимо, неправильно прописал условие выбора: Код:
|
24.11.2011, 12:31 | #10 |
Пользователь
Регистрация: 26.10.2010
Сообщений: 34
|
Блгодаря, Вашим общим усилиям, разобрался:
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
Считывание строк из файла. перемещение по строкам "веред"-"назад" | Larkin. | Помощь студентам | 2 | 15.06.2009 17:58 |
Ошибка при использовании OlePropertyGet("Documents").OleProcedure("Add") в C++ Builder | AleksP | C++ Builder | 7 | 11.04.2009 13:06 |
настроить при открытии Excel 2003 в окошке "Тип файлов" вывод пункта "Все файлы (*.*)" по умолчанию? | Unior | Microsoft Office Excel | 2 | 01.03.2009 02:42 |