В Excel 2007, почему перетаскивание горизонтального разрыва страницы вручную приводит к тому, что предыдущая автоматическая страница меняется на ручную ...? - PullRequest
0 голосов
/ 08 января 2019

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

Когда в режиме просмотра разрыва страницы мышь перетаскивает ручной горизонтальный разрыв страницы дальше вниз по листу, это приводит к переключению предыдущего автоматического разрыва страницы на руководство . Этого не происходит, если разрыв страницы перетаскивается up ; это происходит только тогда, когда разрыв страницы перетаскивается вниз .

Может кто-нибудь объяснить механизм и причину этого ..? Это кажется очень не интуитивным и вызывало у меня некоторое серьезное разочарование, пока я не понял это некоторое время назад. Я могу понять, что перемещение разрыва страницы повлияет на тех, кто находится внизу листа, но почему тот, который находится над ним?

Вот немного VBA, которая настроит демо.

  1. Запустите его.
  2. Перетащите разделитель страницы вручную (тот, что выше в строке 60).
  3. Ничего не происходит.
  4. Затем перетащите его вниз.
  5. При автоматическом разбиении страницы вверх лист переключается на ручной.
  6. Почему?

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

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

1 Ответ

0 голосов
/ 18 января 2019

Это специально (также в моем Excel 2016).

Если вы перетаскиваете конец страницы вверх, обычно вы хотите сократить эту страницу. Это работает, если предыдущий разрыв страницы остается автоматическим.

Если вы перетаскиваете разрыв страницы до конца, как правило, вы хотите увеличить количество напечатанных строк на этой странице. Если предыдущий разрыв страницы останется автоматическим, у вас внезапно появится дополнительный разрыв страницы с размером страницы всего в одну строку. Чтобы предотвратить это, предыдущий перерыв устанавливается на автоматический.

То же самое происходит с вертикальными разрывами страниц: если вы переместите один из них влево (ближе к предыдущему автоматическому, меньшая страница), то предыдущий остается автоматическим. Если вы переместите его всего на 1 столбец вправо, предыдущий также получит ручной.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...