Excel:记住具有多个窗口的窗口大小

时间:2018-04-20 13:03:42

标签: excel excel-vba vba

我能够在https://excelribbon.tips.net/T010091_Remembering_Workbook_Position_and_Size.html

找到以下代码
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
With ThisWorkbook
    With .Names
        .Add Name:="WinTop", RefersToR1C1:="=1"
        .Add Name:="WinLeft", RefersToR1C1:="=1"
        .Add Name:="WinWidth", RefersToR1C1:="=1"
        .Add Name:="WinHeight", RefersToR1C1:="=1"
    End With
    On Error GoTo 0
    .Names("WinTop").RefersTo = ActiveWindow.Top
    .Names("WinLeft").RefersTo = ActiveWindow.Left
    .Names("WinWidth").RefersTo = ActiveWindow.Width
    .Names("WinHeight").RefersTo = ActiveWindow.Height
End With
End Sub

Private Sub Workbook_Open()
With ThisWorkbook
    ActiveWindow.Top = Val(Mid(.Names("WinTop").RefersTo, 2))
    ActiveWindow.Left = Val(Mid(.Names("WinLeft").RefersTo, 2))
    ActiveWindow.Width = Val(Mid(.Names("WinWidth").RefersTo, 2))
    ActiveWindow.Height = Val(Mid(.Names("WinHeight").RefersTo, 2))
End With
End Sub

代码按预期工作;但是,我需要它做更多...我已经使用了" View-> New Window"用于在另一个窗口中显示第二个选项卡。如何保存两个窗口的窗口位置/尺寸?

1 个答案:

答案 0 :(得分:0)

Sheet 1Sheet 2替换为您的真实工作表名称以及Book1.xlsm替换文件名,但保留文件名末尾的:1。

原始窗口是Book1.xlsm:1

第二个窗口是Book1.xlsm:2

第三个窗口(如果有的话)是Book1.xlsm:3

等...

Sub Workbook_Open()
    ActiveWindow.NewWindow
    Sheets("Sheet 1").Select
    ActiveWindow.Zoom = 60
    Application.Left = 863.5
    Application.Top = 1
    Application.Width = 162
    Application.Height = 546
    Windows("Book1.xlsm:1").Activate
    Sheets("Sheet 2").Select
    ActiveWindow.Zoom = 50
    Application.Top = 1
    Application.Left = 1
    Application.Width = 862.5
    Application.Height = 546
End Sub