Последние несколько дней я работал над кодом VBA для Excel 2007, который управляет разрывами страниц в сложной рабочей таблице. После большого разочарования я просто решил проблему «прыгающих разрывов страниц», которая сводила меня с ума, и сделал следующее открытие, которое подводит меня к вопросу «Почему?» ...
Когда в режиме просмотра разрыва страницы мышь перетаскивает ручной горизонтальный разрыв страницы дальше вниз по листу, это приводит к переключению предыдущего автоматического разрыва страницы на руководство . Этого не происходит, если разрыв страницы перетаскивается up ; это происходит только тогда, когда разрыв страницы перетаскивается вниз .
Может кто-нибудь объяснить механизм и причину этого ..? Это кажется очень не интуитивным и вызывало у меня некоторое серьезное разочарование, пока я не понял это некоторое время назад. Я могу понять, что перемещение разрыва страницы повлияет на тех, кто находится внизу листа, но почему тот, который находится над ним?
Вот немного VBA, которая настроит демо.
- Запустите его.
- Перетащите разделитель страницы вручную (тот, что выше в строке 60).
- Ничего не происходит.
- Затем перетащите его вниз.
- При автоматическом разбиении страницы вверх лист переключается на ручной.
- Почему?
Проверка может быть повторена, если вновь переключенный ручной разрыв страницы будет удален, после чего он вернется к автоматическому. Затем перетащите другой и снова посмотрите, как он переключается.
Public Sub PageBreakTest()
Dim x As Long
Dim y As Long
For y = 1 To 75
For x = 1 To 20
Cells(y, x).Value = Cells(y, x).Address(0, 0)
Next
Next
Rows("60:60").PageBreak = xlPageBreakManual
ActiveWindow.View = xlPageBreakPreview
Range(Cells(1, 1), Cells(75, 30)).Select
ActiveWindow.Zoom = True
Range("A1").Select
End Sub