DSK
В общем порылся я в этом несчастном Эхеле... Номер страницы она самостоятельно действительно возвращать не умеет,... но есть так называемая коллекция объектов "PageBreak", используя которые, номера страниц таки можно узнать (и управлять разрывами страниц соответственно). Воть тебе пример, который я прикинул с этим делом:
Код:
Sub Макрос1()
nPages = Worksheets(1).HPageBreaks.Count + 1
'Считаем количество страниц
nStrok = 800
' Задаем число строк
' Можно брать значение из какой-нить ячейки
' или предварительно подсчитывать количество в выделенном диапазоне
Stolb = 5
'Номера страниц проставляем в столбце "E"
If nPages = 1 Then
For i = 1 To nStrok
*Worksheets(1).Cells(i, Stolb).Value = 1
Next i
Else
page = 1
pbRow = Worksheets(1).HPageBreaks(page).Location.Row - 1
For i = 1 To nStrok
*iRow = Worksheets(1).Cells(i, Stolb).Row
*If iRow > pbRow Then
* page = page + 1
* If page < nPages Then
* *pbRow = Worksheets(1).HPageBreaks(page).Location.Row - 1
* Else
* *pbRow = nStrok
* End If
*End If
*Worksheets(1).Cells(i, Stolb).Value = page
Next i
End If
End Sub
Так что можешь это использовать в своем макросе для самостоятельной вставки постраничных итогов (соответственно pbRow надо будет уменьшать пропорцианально номеру текущей страницы, иначе твои итоги могут уже на следующую страницу вылезти). Или можно использовать его прямо в таком виде в комбинации со стандартной функцией промежуточных итогов по группам.
* *Так легче?