Предположим, у вас есть большой рабочий лист, для распечатки которого требуется 16 страниц. Вы можете задаться вопросом, есть ли способ при работе с рабочим листом перейти на какую-либо заданную страницу, например страницу 5.

Пользователи Word знают, что в Word они могут использовать диалоговое окно «Перейти» для перехода к различным страницам, но в Excel такой возможности нет. Однако есть несколько способов решить эту проблему.

Один из подходов — выбрать ячейку, которая отображается вверху страницы.

(Например, та ячейка, которая отображается в верхнем левом углу страницы 5.) Затем вы можете определить имя для ячейки, например Page05. Сделайте это для каждой страницы на листе, и затем вы сможете использовать функции Excel для перехода к этим именам.

Другой способ сделать это — использовать режим предварительного просмотра разрыва страницы. (Чтобы переключиться на предварительный просмотр разрыва страницы, выберите «Просмотр | Просмотр разрыва страницы».) Затем вы сможете увидеть, где находятся разрывы страниц, выбрать ячейку на нужной странице и затем вернуться к обычному виду.

Также можно создать макрос, который позволит вам переходить на определенную страницу, но это не так просто, как вы думаете. Причина связана с возможным использованием жестких разрывов страниц, которые могут изменить начало и конец страницы. Однако следующий макрос может помочь вам. Он запрашивает у пользователя номер страницы, а затем выбирает верхнюю левую ячейку на введенной странице.

Sub GotoPageBreak()

Dim iPages As Integer     Dim wks As Worksheet     Dim iPage As Integer     Dim iVertPgs As Integer     Dim iHorPgs As Integer     Dim iHP As Integer     Dim iVP As Integer     Dim iCol As Integer     Dim lRow As Long     Dim sPrtArea As String     Dim sPrompt As String     Dim sTitle As String

Set wks = ActiveSheet     iPages = ExecuteExcel4Macro("Get.Document(50)")

iVertPgs = wks.VPageBreaks.Count + 1     iHorPgs = wks.HPageBreaks.Count + 1     sPrtArea = wks.PageSetup.PrintArea

sPrompt = "Enter a page number (1 through "

sPrompt = sPrompt & Trim(Str(iPages)) & ") "

sTitle = "Enter Page Number"



iPage = InputBox(Prompt:=sPrompt, Title:=sTitle)



If wks.PageSetup.Order = xlDownThenOver Then         iVP = Int((iPage - 1) / iHorPgs)

iHP = ((iPage - 1) Mod iHorPgs)

Else         iHP = Int((iPage - 1) / iVertPgs)

iVP = ((iPage - 1) Mod iVertPgs)

End If

If iVP = 0 Then         If sPrtArea = "" Then             iCol = 1         Else             iCol = wks.Range(sPrtArea).Cells(1).Column         End If     Else         iCol = wks.VPageBreaks(iVP).Location.Column     End If

If iHP = 0 Then         If sPrtArea = "" Then             lRow = 1         Else             lRow = wks.Range(sPrtArea).Cells(1).Row         End If     Else         lRow = wks.HPageBreaks(iHP).Location.Row     End If

wks.Cells(lRow, iCol).Select     Set wks = Nothing End Sub

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (5823) применим к Microsoft Excel 97, 2000, 2002 и 2003.