我能够在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"用于在另一个窗口中显示第二个选项卡。如何保存两个窗口的窗口位置/尺寸?
答案 0 :(得分:0)
将Sheet 1
和Sheet 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