Подскажите, пожалуйста, в сквозных строках необходимо сделать в ячейке обновляющейся номер страницы.
Нашёл код: [vba]
Код
Function page(x As Range) As Long Dim nHorBr As Long, nVerBr As Long, iHor As Long, iVer As Long Application.Volatile 'пересчитывать при пересчете листа (в т.ч. по F9) With x.Parent 'лист nHorBr = .HPageBreaks.Count 'число гориз. разрывов, число страниц по вертикали nHorBr+1 nVerBr = .VPageBreaks.Count 'число верт. разрывов, число страниц по горизонтали nVerBr+1
'************************ ! Внимание ! ********************************************** 'В Excel-2000 обнаружен глюк: если число вертикальных разрывов >3, 'то свойство .VPageBreaks.Count возвращает число на 1 больше, чем должно быть. 'Проверьте, требуется ли на вашей системе коррекция числа вертикальных разрывов. 'Для отключения коррекции закомментируйте следующую строку. If nVerBr > 3 Then nVerBr = nVerBr - 1
For iHor = 1 To nHorBr If x.Row < x.Parent.HPageBreaks(iHor).Location.Row Then Exit For Next For iVer = 1 To nVerBr If x.Column < x.Parent.VPageBreaks(iVer).Location.Column Then Exit For Next If .PageSetup.Order = xlOverThenDown Then page = (iHor - 1) * (nVerBr + 1) + iVer Else page = (iVer - 1) * (nHorBr + 1) + iHor End If End With End Function
[/vba] Но, в качестве аргумента функции, указывется адрес ячейки, которая остаётся на первой странице, таким образом функция показывает только № первой страницы.
Как можно сделать динамически обновляемый номер страницы в ячейке, которая находится в сквозных строках?
Добрый день, уважаемые дамы и господа.
Подскажите, пожалуйста, в сквозных строках необходимо сделать в ячейке обновляющейся номер страницы.
Нашёл код: [vba]
Код
Function page(x As Range) As Long Dim nHorBr As Long, nVerBr As Long, iHor As Long, iVer As Long Application.Volatile 'пересчитывать при пересчете листа (в т.ч. по F9) With x.Parent 'лист nHorBr = .HPageBreaks.Count 'число гориз. разрывов, число страниц по вертикали nHorBr+1 nVerBr = .VPageBreaks.Count 'число верт. разрывов, число страниц по горизонтали nVerBr+1
'************************ ! Внимание ! ********************************************** 'В Excel-2000 обнаружен глюк: если число вертикальных разрывов >3, 'то свойство .VPageBreaks.Count возвращает число на 1 больше, чем должно быть. 'Проверьте, требуется ли на вашей системе коррекция числа вертикальных разрывов. 'Для отключения коррекции закомментируйте следующую строку. If nVerBr > 3 Then nVerBr = nVerBr - 1
For iHor = 1 To nHorBr If x.Row < x.Parent.HPageBreaks(iHor).Location.Row Then Exit For Next For iVer = 1 To nVerBr If x.Column < x.Parent.VPageBreaks(iVer).Location.Column Then Exit For Next If .PageSetup.Order = xlOverThenDown Then page = (iHor - 1) * (nVerBr + 1) + iVer Else page = (iVer - 1) * (nHorBr + 1) + iHor End If End With End Function
[/vba] Но, в качестве аргумента функции, указывется адрес ячейки, которая остаётся на первой странице, таким образом функция показывает только № первой страницы.
Как можно сделать динамически обновляемый номер страницы в ячейке, которая находится в сквозных строках?Awhite