Я пытаюсь настроить кнопку в Excel, чтобы показать двойное представление двух отдельных листов одновременно.Это код, который я написал до сих пор (см. Ниже).Пока что код работает.Проблема в том, что в верхнем окне есть некоторые элементы управления activex на листе, и они, кажется, перестают работать, пока нижнее окно снова не закроется.Почему это происходит, и что я могу сделать, чтобы это исправить?Спасибо.
Private Sub DualViewButton_Click()
Dim windowToPutOnTimeline As Window
If Windows.Count = 1 Then
ThisWorkbook.NewWindow
Windows.Arrange xlArrangeStyleHorizontal, True, False, False
Set windowToPutOnTimeline = Windows(1)
If Windows(1).Top < Windows(2).Top Then
Set windowToPutOnTimeline = Windows(2)
End If
With windowToPutOnTimeline
.Activate
HorizontalTimelineSheet.Activate
.DisplayGridlines = False
.DisplayRuler = False
.DisplayHeadings = False
.DisplayWorkbookTabs = False
'.EnableResize = False
End With
Windows(2).Activate 'go back to the right focus the user expects.
Else
If Windows(1).Top = Windows(2).Top Then
Windows.Arrange xlArrangeStyleHorizontal, True, False, False
Else
Windows.Arrange xlArrangeStyleVertical, True, False, False
End If
End If
End Sub
РЕДАКТИРОВАТЬ: если я переключаю окно, которое назначается для windowToPutOnTimeline, то проблема исчезает.Так что я по существу обошел проблему, не зная, почему она работает иначе.(см. фрагмент кода ниже)
With ThisWorkbook
Set windowToPutOnTimeline = .Windows(1)
Set windowToPutOnDataSheet = .Windows(2)
tmp = .Windows(1).Top
.Windows(1).Top = .Windows(2).Top
.Windows(2).Top = tmp
End With