asked on
Option Explicit
Sub CreateNewWindow()
Dim iRow As Integer
Dim iCol As Integer
Dim rOldPos As Range
Dim iZoom As Integer
Dim wOldWindow As Window
Dim wNewWindow As Window
Dim sSheet As Worksheet
Dim sOldSheet As Worksheet
Set wOldWindow = ActiveWindow
Set sOldSheet = ActiveSheet
wOldWindow.NewWindow
Set wNewWindow = ActiveWindow
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
For Each sSheet In ActiveWorkbook.Worksheets
If sSheet.Visible = xlSheetVisible Then
wOldWindow.Activate
sSheet.Select
Set rOldPos = ActiveCell
iRow = 0
iCol = 0
If wOldWindow.FreezePanes Then
iRow = ActiveWindow.ScrollRow
iCol = ActiveWindow.ScrollColumn
End If
iZoom = wOldWindow.Zoom
wNewWindow.Activate
sSheet.Select
If (iRow > 0) And (iCol > 0) Then
Cells(iRow, iCol).Select
wNewWindow.FreezePanes = True
End If
wNewWindow.Zoom = iZoom
rOldPos.Select
End If
Next sSheet
wOldWindow.Activate
sOldSheet.Select
wNewWindow.Activate
sOldSheet.Select
Set wOldWindow = Nothing
Set wNewWindow = Nothing
Set rOldPos = Nothing
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub