Когда я закрываю свою книгу, она вызывает SubClose Sub, которая выбирает А1 на всех листах, кроме одного, который вместо этого выбирает самый последний.
По какой-то причине, когда другая книга закрывает эту книгу,Команды активации просто игнорируются, код запускает строку ... но не меняет фокус.который сразу после этого выбирает диапазон вне пределов, так как фокус не на том листе.
У меня есть «ведущий» ковчег Excel, который используется для автоматического открытия нескольких других листов Excel.и запустить их код.проблема в том, что они настроены особым образом, поэтому при закрытии он запускает функцию (Workbook_BeforeClose), которая выбирает A1 на всех листах, кроме одного с именем "Arkiv", и вместо этого выбирает самую последнюю строку.
Проблема возникает с тех пор, как thisworkbook.activate и thisworkbook.sheets ("arkiv"). Activate просто игнорируется, если запускается функцией события, если она была запущена иначе.закрыто другим кодом рабочей книги.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If ThisWorkbook.Saved Then SaveStatus = vbYes Else SaveStatus = vbNo
If SaveStatus = vbNo Then SaveStatus = MsgBox("Do you want to save before closing the workbook?", vbYesNoCancel, "Save Prompt")
If SaveStatus = 2 Then Cancel = True: Exit Sub
If SaveStatus = vbYes Then
ThisWorkbook.Activate
Application.ScreenUpdating = False
For Each CloseSheet In ThisWorkbook.Sheets
CloseSheet.Activate 'activate it so it's selectable, and active
Range("A1").Select
RTS = 1 'Row To Scroll - Top if sheet is not Arkiv
If CloseSheet.Name = "Arkiv" Then
RTS = CloseSheet.Cells(2, 1).End(xlDown).Row
CloseSheet.Cells(RTS, 2).Select 'ERROR HERE
CloseSheet.Cells(RTS, 1).Select 'ERROR HERE
RTS = RTS - 10
End If
ActiveWindow.ScrollRow = RTS 'Scroll to the top
ActiveWindow.ScrollColumn = 1 'Scroll to the left
Next
ThisWorkbook.Sheets(1).Select
ThisWorkbook.Save
End If
ThisWorkbook.Saved = True
End Sub
Я ожидаю, что Рабочая книга будет выбрана, а затем будут выбраны все листы один за другим, но фокус не меняется вообще.