Неравномерное разделение экрана между двумя рабочими книгами (Microsoft Excel)
Часто, когда у Дэйва открыты две книги, он использует Упорядочить | По горизонтали для одновременного просмотра. Это равномерно разделяет пространство между двумя книгами. Однако часто случается, что Дэйв хотел бы видеть только несколько строк данных в одной книге и много строк в другой. Он задается вопросом, есть ли удобный способ вручную изменить размер меньшей книги и заставить Excel заполнить оставшееся место на экране второй книгой.
Ручной способ сделать это — тот, с которым Дэйв (и большинство других пользователей Excel) уже знаком: вы располагаете окна по горизонтали, изменяете размер верхнего окна, а затем изменяете размер нижнего окна. Таким образом, вы добьетесь того, чтобы окна были именно такими, как вы хотите, чтобы выполнять вашу работу.
Если вам нужен более автоматический способ изменения размера окон, вы можете использовать макрос для выполнения задачи. Следующий макрос требует, чтобы вы изменили размер первого окна так, как хотите, а затем он автоматически изменит размер второго окна, чтобы занять оставшееся пространство под верхним окном.
Sub UnevenSplit1() Dim Ht0 As Single Dim Ht1 As Single Dim Ht2 As Single Dim Top2 As Single If Windows.Count = 2 Then With Windows(1) Ht1 = .Height .WindowState = xlMaximized Ht0 = .Height End With Top2 = Ht1 + 3 Windows.Arrange ArrangeStyle:=xlHorizontal With Windows(1) .Top = 1 .Height = Ht1 End With With Windows(2) .Top = Top2 .Height = Ht0 - Ht1 - 22 End With Windows(1).Activate End If End Sub
Макрос изменит размер окон вашей книги, только если у вас открыты только две книги. Если у вас больше или меньше этого, будет казаться, что ничего не происходит.
Вы можете сделать еще один шаг в автоматизации, изменив размер и верхнего окна макроса. В следующем примере верхнее окно занимает 25% экрана, а нижнее окно — 75%.
Sub UnevenSplit() Dim Ht1 As Single Dim Ht2 As Single Dim Ht1a As Single Dim Ht2a As Single Dim Top2 As Single If Windows.Count = 2 Then Windows.Arrange ArrangeStyle:=xlHorizontal Ht1 = Windows(1).Height Ht2 = Windows(2).Height Ht1a = Ht1 / 2 Top2 = Ht1a + 3 Ht2a = Ht2 + Ht1a With Windows(1) .Top = 1 .Height = Ht1a End With With Windows(2) .Top = Top2 .Height = Ht2a End With Windows(1).Activate End If End Sub
Вы также должны знать, что значение этого макроса во многом зависит от того, что вы видите в своих окнах. Если у вас есть ленты на полной вертикальной глубине, это займет много места на экране. Фактически, это может занять настолько много времени, что даже если верхнее окно занимает 25% высоты экрана, оно может не отображать какие-либо строки вашего рабочего листа, потому что пространство занято лентой и другими элементами интерфейса.
Есть два возможных решения. Первый — минимизировать элементы экрана, такие как лента. (Дважды щелкните любую вкладку ленты, чтобы свернуть ленту.) Другое решение, конечно же, состоит в том, чтобы макрос использовал различные вычисления для определения окончательных размеров окон. (Окончательная высота окон находится в переменных Ht1a и Ht2a.)
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (13380) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.