Страница 1 из 1
Число страниц EXEL документа через OLE
Добавлено: 04 Август 2008, 18:14
vvmaster
Подскажите, как получить общее число страниц документа EXEL через OLE ?
Ну и заодно номер активной станицы тоже
Еще один вопрос в догонку:
Как задать имя ячейке и потом обратится к ней именно по имени а не по адресу?
Re: Число страниц EXEL документа через OLE
Добавлено: 05 Август 2008, 10:15
WadimZapara
недоперепонял вопроса
число листов в книге или печатных страниц на листе ?
а далее - в EXCEL'е делать то, что спрашиваешь умеешь?
если нет - так используй запись макроса, чтоб увидеть.
всё прозрачно
Re: Число страниц EXEL документа через OLE
Добавлено: 05 Август 2008, 10:39
vvmaster
С именем ячейки разобрался.
Пытаюсь получить количество печатных страниц на листе .
n#=cole{'Application.Sheets.Count'} всегда возвращает 2

Может не то это?
И как при помощи записи макроса посмотреть количество печатных страниц я не понял
С EXEL-м действительно знаком мало, а шеф требует срочно формировать EXEL отчеты
P.S. Sheets.Count действительно не то - это количество листов в книге

Кстати - лист только один а выдает 2
А вот где хранится количество печатных страниц на листе так и не нашел, как и номер текущей страницы
Re: Число страниц EXEL документа через OLE
Добавлено: 05 Август 2008, 12:22
Игорь Столяров
А я если честно, вообще не понимаю как можно "посмотреть" кол-во печатных листов ...
Этот показатель как минимум зависит от драйвера принтера, раскладки отчета, отступов печатного листа ...
Можно в саму таблицу MS Excel вставить печать номера страницы и кол-во листов, но определены эти
значения будут на момент печати (или предварительного просмотра) отчета.
Re: Число страниц EXEL документа через OLE
Добавлено: 05 Август 2008, 12:34
vvmaster
Все очень просто:
Например в накладной есть поле "Товарная накладная имеет продолжение на _____ листах"
и это поле необходимо заполнить.
А насчет полей и драйвера принтера - то поля заданы жестко в документе, как и размер бумаги, так что с этим проблем нет.
>Можно в саму таблицу MS Excel вставить печать номера страницы и кол-во листов, но определены эти
>значения будут на момент печати (или предварительного просмотра) отчета.
Никак нет - эти данные есть и в режиме работы с накладной - они светятся в левом нижнем углу.
Вот как их оттуда получить?
Re: Число страниц EXEL документа через OLE
Добавлено: 16 Сентябрь 2008, 13:06
WadimZapara
1) Application.Sheets.Count - заданное в EXCEL число рабочих листов, с которым создаётся (по умолчанию) новая книга.
2) Количество имеющихся рабочих листов в активной книге - ActiveWorkBook.WorkSheets.Count, а в заданной - WorkBooks(имя_или_номер).WorkSheets.Count
3) Количество печатных страниц - ПРАВ Игорь Столяров - зависит от многого, в том числе, от выделенных рабочих листов EXCEL перед вызовом печати, словом от того, ЧТО ПОНИМАТЬ ПОД "ПЕЧАТАЕМЫЙ ДОКУМЕНТ".
А как организована твоя накладная - на одном рабочем листе или на двух, как происходит печать - может быть это запуск какого-то макроса - этого мы не знаем.
Хочешь - объясни подробно, либо дай образец своего EXCEL-документа. Тогда на твой вопрос будет найден ответ.
Re: Число страниц EXEL документа через OLE
Добавлено: 16 Сентябрь 2008, 15:38
vvmaster
В документе во вкладке вид включена разметка страницы (office 2007), размер страницы задан A4 - на экране вижу листы так, как они будут напечатаны.
В левом нижнем углу стока: "Страница: 1 из 5". Так вот как получить в этот момент эту цифру 5?
Накладная на одном рабочем листе. Печать не предусматривается так-как накладная отправляется электронкой.
Я бы прислал накладную, но не понял как ее прикрепить к сообщению.
Re: Число страниц EXEL документа через OLE
Добавлено: 17 Сентябрь 2008, 10:23
WadimZapara
1) worksheets(номер_или_имя_листа).hPageBreaks.count - число горизонтальных разделителей на страницы
2) worksheets(номер_или_имя_листа).vPageBreaks.count - то же - вертикальных
3) вместо worksheets(номер_или_имя_листа) можно использовать ActiveSheet
Получаешь свойство 1 и свойство 2, увеличиваешь каждое на единицу, перемножаешь и становишься счастливым
Re: Число страниц EXEL документа через OLE
Добавлено: 17 Сентябрь 2008, 16:14
vvmaster
Спасибо!!!!