Здравия и мира всем! Такая вот задачка. Как формулой описать номер страницы? Есть файл из множества страниц и надо в определенной ячейке показать номер страницы. Перерыл все формулы (ну или почти перерыл)), но ничего так и не обнаружил. Есть ли решение? Разумеется, что без помощи колонтитулов... Заранее благодарствую за подсказку..
Здравия и мира всем! Такая вот задачка. Как формулой описать номер страницы? Есть файл из множества страниц и надо в определенной ячейке показать номер страницы. Перерыл все формулы (ну или почти перерыл)), но ничего так и не обнаружил. Есть ли решение? Разумеется, что без помощи колонтитулов... Заранее благодарствую за подсказку..nikitan95
Формулами не получится. Можно макросом. Чтобы макрос работал, надо разрешить его выполнение в настройках безопасности Excel Код макроса в Модуле1 [vba]
Код
Sub test() Set currcell = ActiveCell ' Запоминаем активную ячейку ActiveSheet.Columns("F:F").ClearContents 'Очистка столбца перед проставкой номеров ActiveSheet.PageSetup.PrintArea = "" 'Application.ScreenUpdating = False ' Отключаем обновление экрана Application.Cells(65536, 256).Select 'Активная ячейка должна быть самой нижней и самой правой 'http://support.microsoft.com/default.aspx?scid=kb;en-us;210663&Product=xlw2K Page_Count = ActiveSheet.HPageBreaks.Count ' количество промежутков между страницами Cells(2, 6) = "1" ' Ставим первый номер страницы If Page_Count <> 0 Then ' 0 - если всего один лист For i = 1 To Page_Count 'счет от второго листа до последнего Ctp = ActiveSheet.HPageBreaks(i).Location.Row 'номер первого ряда листа i Cells(Ctp+1, 6) = i + 1 ' Ставим следующие номера страниц Next i End If currcell.Select ' Возвращаемся на активную ячейку до запуска макроса 'Application.ScreenUpdating = True ' Включаем обновление экрана End Sub
[/vba] Отключение обновления экрана закомментировано. Иначе происходит ошибка, правда не всегда. Разобраться не смог. Даже применив рекомендации из ссылки http://support.microsoft.com/default....t=xlw2K
Формулами не получится. Можно макросом. Чтобы макрос работал, надо разрешить его выполнение в настройках безопасности Excel Код макроса в Модуле1 [vba]
Код
Sub test() Set currcell = ActiveCell ' Запоминаем активную ячейку ActiveSheet.Columns("F:F").ClearContents 'Очистка столбца перед проставкой номеров ActiveSheet.PageSetup.PrintArea = "" 'Application.ScreenUpdating = False ' Отключаем обновление экрана Application.Cells(65536, 256).Select 'Активная ячейка должна быть самой нижней и самой правой 'http://support.microsoft.com/default.aspx?scid=kb;en-us;210663&Product=xlw2K Page_Count = ActiveSheet.HPageBreaks.Count ' количество промежутков между страницами Cells(2, 6) = "1" ' Ставим первый номер страницы If Page_Count <> 0 Then ' 0 - если всего один лист For i = 1 To Page_Count 'счет от второго листа до последнего Ctp = ActiveSheet.HPageBreaks(i).Location.Row 'номер первого ряда листа i Cells(Ctp+1, 6) = i + 1 ' Ставим следующие номера страниц Next i End If currcell.Select ' Возвращаемся на активную ячейку до запуска макроса 'Application.ScreenUpdating = True ' Включаем обновление экрана End Sub
Не очень понятно. В задаче говорится о множестве страниц. Формула должна находится в определенной ячейке каждого листа. В примере эта ячейка в столбце F во второй строке каждой страницы. Чтобы знать куда поставить формулу надо сначала разметить страницы. Потом ориентируясь на пунктирные линии разметки копировать формулу в ячейку. Т.е получается работа ручная, а копировать придется множество раз. Может быть даже без формулы вставлять 1, 2, 3 и тд. будет не сложнее или даже проще. В колонтитулах номера страниц проставляются автоматом, и я так понял, что надо автоматом проставлять номера, но без колонтитулов.
Цитата (Формуляр)
Используйте MAX()+1
Не очень понятно. В задаче говорится о множестве страниц. Формула должна находится в определенной ячейке каждого листа. В примере эта ячейка в столбце F во второй строке каждой страницы. Чтобы знать куда поставить формулу надо сначала разметить страницы. Потом ориентируясь на пунктирные линии разметки копировать формулу в ячейку. Т.е получается работа ручная, а копировать придется множество раз. Может быть даже без формулы вставлять 1, 2, 3 и тд. будет не сложнее или даже проще. В колонтитулах номера страниц проставляются автоматом, и я так понял, что надо автоматом проставлять номера, но без колонтитулов.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
я так понял, что надо автоматом проставлять номера, но без колонтитулов.
совершенно верно... хотя не вникаю сильно в макросы, но знал что посредством макросов эта задачка вполне решаемая.. значит, без макросов, через встроенные функции никак?
Цитата (AlexM)
я так понял, что надо автоматом проставлять номера, но без колонтитулов.
совершенно верно... хотя не вникаю сильно в макросы, но знал что посредством макросов эта задачка вполне решаемая.. значит, без макросов, через встроенные функции никак?nikitan95
Автоматически никак. А с макросом тоже заморочки. Чтобы не было ошибок макроса надо активную ячейку переместить в самый низ и в право. Непонятно зачем. Да и отключение обновления экрана через раз дает сбой макросу. Эта задача помогла понять тонкости в простановке номеров страниц в таблицу по привязки к разметки страницы.
Цитата (nikitan95)
через встроенные функции никак?
Автоматически никак. А с макросом тоже заморочки. Чтобы не было ошибок макроса надо активную ячейку переместить в самый низ и в право. Непонятно зачем. Да и отключение обновления экрана через раз дает сбой макросу. Эта задача помогла понять тонкости в простановке номеров страниц в таблицу по привязки к разметки страницы.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.