Вопрос по Excel. - VB
Формулировка задачи:
Добрый день.
Подскажите, как можно ПРОГРАМНО вывести в ячейку количество страниц и номер текущей страницы при печати? Макросом или внешней операцией над объектом Excel.
Использование колонтитулов не подходит.
Я так понял, что как-то можно пользоваться коллекциями PageBrake, только у меня что-то то ли они не срабатывают, то ли я их не так использую...
Поиск разумеется юзал, но применить это к свойе задаче так и не получилось.
Спасибо!
Подскажите, как можно ПРОГРАМНО вывести в ячейку количество страниц и номер текущей страницы при печати? Макросом или внешней операцией над объектом Excel.
Использование колонтитулов не подходит.
Я так понял, что как-то можно пользоваться коллекциями PageBrake, только у меня что-то то ли они не срабатывают, то ли я их не так использую...
Поиск разумеется юзал, но применить это к свойе задаче так и не получилось.
Спасибо!
Решение задачи: «Вопрос по Excel.»
textual
Листинг программы
<font color="blue">Sub</font> test() <font color="00AA00">'Нумерация страниц, страница ставится в последней строке странице и в средней колонке</font> <font color="blue">Dim</font> printRng <font color="blue">As</font> Range <font color="blue">Dim</font> columnToPage <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Dim</font> countHPageBreak <font color="blue">As</font> <font color="blue">Long</font>, countVPageBreak <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Dim</font> hPB <font color="blue">As</font> HPageBreak, vPB <font color="blue">As</font> VPageBreak <font color="blue">Dim</font> pageLastRow() <font color="blue">As</font> Variant, pageColumn() <font color="blue">As</font> Variant <font color="blue">Dim</font> x <font color="blue">As</font> <font color="blue">Long</font> <font color="blue">Dim</font> i <font color="blue">As</font> <font color="blue">Long</font>, j <font color="blue">As</font> <font color="blue">Long</font>, ihPB <font color="blue">As</font> <font color="blue">Long</font>, jvPB <font color="blue">As</font> <font color="blue">Long</font> columnToPage = <font color="darkblue"><b>5</b></font> <font color="00AA00">' в какой колонке ставить номер</font> <font color="blue">With</font> ActiveSheet <font color="blue">If</font> .PageSetup.PrintArea <> <font color="teal">""</font> <font color="blue">Then</font> <font color="blue">Set</font> printRng = .Range(.PageSetup.PrintArea) <font color="blue">Else</font> <font color="blue">Set</font> printRng = .UsedRange <font color="blue">End</font> <font color="blue">If</font> countHPageBreak = .HPageBreaks.Count <font color="blue">ReDim</font> pageLastRow(countHPageBreak) <font color="blue">As</font> Variant i = <font color="darkblue"><b>0</b></font> <font color="blue">For</font> <font color="blue">Each</font> hPB <font color="blue">In</font> .HPageBreaks pageLastRow(i) = hPB.Location.Row - <font color="darkblue"><b>1</b></font> i = i + <font color="darkblue"><b>1</b></font> <font color="blue">Next</font> hPB pageLastRow(countHPageBreak) = printRng.Rows.Count + printRng.Row - <font color="darkblue"><b>1</b></font> countVPageBreak = .VPageBreaks.Count <font color="blue">ReDim</font> pageColumn(countVPageBreak) <font color="blue">As</font> Variant j = <font color="darkblue"><b>0</b></font> x = <font color="darkblue"><b>1</b></font> <font color="blue">For</font> <font color="blue">Each</font> vPB <font color="blue">In</font> .VPageBreaks pageColumn(j) = Fix((x + vPB.Location.Column - <font color="darkblue"><b>1</b></font>) / <font color="darkblue"><b>2</b></font>) j = j + <font color="darkblue"><b>1</b></font> x = vPB.Location.Column <font color="blue">Next</font> vPB pageColumn(countVPageBreak) = Fix((x + printRng.Columns.Count + printRng.Column - <font color="darkblue"><b>1</b></font>) / <font color="darkblue"><b>2</b></font>) <font color="blue">For</font> jvPB = <font color="darkblue"><b>0</b></font> <font color="blue">To</font> countVPageBreak <font color="blue">For</font> ihPB = <font color="darkblue"><b>0</b></font> <font color="blue">To</font> countHPageBreak .Cells(pageLastRow(ihPB), pageColumn(jvPB)).Value _ = <font color="teal">"Cтраница "</font> & (countHPageBreak + <font color="darkblue"><b>1</b></font>) * jvPB + ihPB + <font color="darkblue"><b>1</b></font> & <font color="teal">" из "</font> & (countHPageBreak + <font color="darkblue"><b>1</b></font>) * (countVPageBreak + <font color="darkblue"><b>1</b></font>) <font color="blue">Next</font> ihPB <font color="blue">Next</font> jvPB <font color="blue">End</font> <font color="blue">With</font> <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д