02.05.2007, 15:40 | #21 |
Программер
|
Буду иметь ввиду. Теперь только осталось определить адрес этого pageBreak и добавлять туда итог
Спасибо за наводку. |
|
02.05.2007, 15:48 | #22 |
Moderator
|
Цитата:
Цитата:
Location Property
For the HPageBreak and VPageBreak objects, this property returns or sets the cell (a Range object) that defines the page-break location. Horizontal page breaks are aligned with the top edge of the location cell; vertical page breaks are aligned with the left edge of the location cell. Read/write Range. |
|
02.05.2007, 16:01 | #23 |
Программер
|
Спасибо, как раз маялся с этим Location
|
|
02.05.2007, 16:22 | #24 |
Moderator
|
еще на заметку
Вот, доктора прямо английским по-белому пишут про GET.DOCUMENT(50):
How to determine how many pages will be printed in Excel А вот это вообще круть - на формулах сделано: Page Of Pages in a Cell Во второй ссылке создаются вот такие имена с такими формулами (не связанными явно с ячейками!). Чтобы создать такие имена надо в Excel'е нажать Ctrl+F3 (или по меню: Вставить-Имя-Присвоить) и далее ввести в поле "Имя" то, что до двоеточия, а в поле "Формула" то, что после. Для английской версии Excel: RowAfterpgbrk : =GET.DOCUMENT(64) TotPageCount : =GET.DOCUMENT(50) PageOfPages : ="Page " & IF(ISNA(MATCH(ROW(),RowAfterpgbrk,1)),1,MATCH(ROW(),RowAfterpgbrk,1)+1)& " of " & TotPageCount + 0*NOW() ThisPage : =IF(ISNA(MATCH(ROW(),RowAfterpgbrk,1)),1,MATCH(ROW(),RowAfterpgbrk,1)+1) Для русской версии Excel: RowAfterpgbrk: =ПОЛУЧИТЬ.ДОКУМЕНТ(64) TotPageCount : =ПОЛУЧИТЬ.ДОКУМЕНТ(50) PageOfPages : ="Page " & ЕСЛИ(ЕНД(ПОИСКПОЗ(СТРОКА(),RowAfterpgbrk,1)),1,ПОИСКПОЗ(СТРОКА(),RowAfterpgbrk,1)+1)& " of " & TotPageCount + 0*ТДАТА() ThisPage : =ЕСЛИ(ЕНД(ПОИСКПОЗ(СТРОКА(),RowAfterpgbrk,1)),1,ПОИСКПОЗ(СТРОКА(),RowAfterpgbrk,1)+1) Следуя указаниям второй ссылки создал свой примерчик с этими формулами. Посмотрите вложение (немножко подождите при открытии, чтобы пересчитались формулы). Посмотрите Print Preview. В общем, занятная штуковина... Еще раз смысл происходящего: есть возможность выяснить при помощи формул, на какой лист при распечатке попадет та или иная строка листа Excel. |
|
28.10.2007, 15:59 | #25 |
Участник
|
Цитата:
Сообщение от Gustav
Вот, доктора прямо английским по-белому пишут про GET.DOCUMENT(50):
How to determine how many pages will be printed in Excel cv.double() - выдает 0 cv.toString() - выдает 0x800A07ED VT_ERROR Если смотрю через макрос в экселе : "MsgBox ExecuteExcel4Macro("GET.DOCUMENT(50)") & _ " pages will be printed." - отрабатывает конечно... 0x800A07ED VT_ERROR |
|
29.10.2007, 10:03 | #26 |
Moderator
|
Может, у Вас какие-нибудь языковые проблемы типа как здесь? Может, надо по-русски ПОЛУЧИТЬ.ДОКУМЕНТ писать?
|
|
29.10.2007, 15:27 | #27 |
Участник
|
Действитель, Вы правы. Главное вчера читал вашу ссылку, об этом думал, но пост выше моего "TotPageCount : =ПОЛУЧИТЬ.ДОКУМЕНТ(50)" не заметил ) Спасибо!
|
|
29.10.2007, 17:34 | #28 |
Участник
|
Цитата:
Но высота добавляемой строки с итогами может оказаться большей высоты последней строки страницы, и итоги вполне могут появиться в заголовке следующей. Высота строки: X++: COMVariant height;
COM r = excelDocument.findRange("a1");
height = r.height();
info(int2str(height.double()) Последний раз редактировалось CDan; 31.10.2007 в 11:21. |
|
30.10.2007, 19:01 | #29 |
Участник
|
Цитата:
Worksheets(1).PageSetup.RightFooter = SumPage, где SumPage = требуемое значение, вычисленное, например, при помощи HPageBreaks |
|
31.10.2007, 09:27 | #30 |
Moderator
|
Не сильно много чего можно в колонтитул написать, а требуется, вроде, итоговая строка внизу каждой страницы со структурой, аналогичной структуре таблицы (т.е. ячейки, бордюрчики, цвет и т.п.).
|
|