Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: [архив] Microsoft Excel
Показать сообщение отдельно

Аватара для Greyman

Человек


Сообщения: 3314
Благодарности: 104

Профиль | Отправить PM | Цитировать


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 надо будет уменьшать пропорцианально номеру текущей страницы, иначе твои итоги могут уже на следующую страницу вылезти). Или можно использовать его прямо в таком виде в комбинации со стандартной функцией промежуточных итогов по группам.
* *Так легче?

-------
Будь проще...


Отправлено: 13:40, 17-03-2004 | #55

Название темы: [архив] Microsoft Excel