Помните что-нибудь во время автоматического открытия в Application.Caption
Вы можете сохранить ActiveSheet.Name
в Application.Caption
во время принудительного повторного открытия книги, даже если все остальные глобальные переменные будут потеряны.
' Within ThisWorkbook:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.Caption = "Last Active: " & ActiveSheet.Name
' Stop ' temporary to see the caption, but restart will not work!
End Sub
' Both following subs within a normal module:
Public Sub ForceReopen()
Application.OnTime Now + TimeValue("00:00:01"), "GoToLast"
ThisWorkbook.Close False
End Sub
Private Sub GoToLast()
Dim iLastSheet As Integer ' Position of text "Last Active" in Caption
iLastSheet = InStr(Application.Caption, "Last Active:")
' Stop ' temporary to see "Last Active: ..." in the caption
If iLastSheet > 0 Then
On Error Resume Next
ThisWorkbook.Sheets(Mid(Application.Caption, iLastSheet + 13)).Activate
On Error GoTo 0
Application.Caption = ""
End If
End Sub
Если вы сохраняете рабочую книгу, находящуюся на Листе 1, и начинаете ForceReopen
, оставаясь на Листе3 (по кнопке, по гиперссылке, вручную, независимо от того, что), то она снова открывается на Листе 3.
Чтобы проверить функциональность, вы можете добавить первый Stop
, чтобы увидеть, правильно ли установлен Application.Caption
(книга не откроется после этого, поэтому вы должны удалить этот Стоп после тестирования):

Вы можете добавить второй Stop
, чтобы проверить, установлен ли Application.Caption
в соответствии с назначением после его автоматического открытия:
