gpt4 book ai didi

vba - Excel:如果我在同一工作簿上打开两个窗口,为什么宏在第一个窗口中停止工作?

转载 作者:行者123 更新时间:2023-12-02 16:09:36 25 4
gpt4 key购买 nike

我正在尝试在 Excel 中设置一个按钮以同时显示两个单独工作表的双 View 。这是我到目前为止编写的代码(见下文)。到目前为止,代码似乎可以工作。问题是顶部窗口的工作表上有一些 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

最佳答案

此行为是 ActiveX 控件中的错误。

解决方法是使用表单控件中的按钮,而不是 ActiveX 按钮

使用“表单”按钮,您需要添加一个模块,用您的代码声明一个 Sub,并将该 Sub 作为操作宏分配给您的按钮(与将代码放在 ActiveX 按钮的单击事件中不同)

我在 Excel 2007 上尝试过此操作,似乎工作正常 - 该按钮在两个窗口上都会出现并工作

关于vba - Excel:如果我在同一工作簿上打开两个窗口,为什么宏在第一个窗口中停止工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4877869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com