gpt4 book ai didi

excel - Workbook_Open 后焦点错误的 Excel 窗口

转载 作者:行者123 更新时间:2023-12-02 06:44:47 24 4
gpt4 key购买 nike

我最近升级到 Office 365/Excel 2016 导致了一些不需要的行为变化。 Workbook("Portfolio Appreciation") 包含一个 Workbook_open 过程,用于检查 Workbook("Index Returns") 是否打开;如果不是,它将打开该工作簿。

对于 Excel 2007,Index Returns将在后台打开并停留在那里,这是所需的行为。它将位于“窗口中”,并且可以在同一个 Excel 窗口中使用 Arrange All 进行查看。 Window 上的选项View 的选项卡丝带。

对于 Excel 2016,如果通过 Workbook_Open 过程打开它,Index Returns在其自己的 Excel 窗口中打开,并在前面结束。 (无法再在与 Portfolio Appreciation 相同的 Excel 窗口中查看)。

事实上Index Returns前面就是问题所在。

我尝试过选择和取消选择忽略其他使用 DDE 的应用程序的选项;我已经尝试过AppActivate方法(如下面的代码所示)并使用MsgBox进行验证,参数与相关标题栏匹配。

不知道下一步该去哪里。感谢建议。

另外:Index Returns不包含宏或连接。 Portfolio AppreciationWorkbook_Open 外不包含任何宏并且确实有一个网络查询,该查询在打开时会刷新(查询会下载一些股票指数内容)。

<小时/>
Option Explicit
Private Sub Workbook_Open()
Dim wbs As Workbooks, wb As Workbook
Dim IndexReturns As String
Dim re As RegExp
Const sPat As String = "(^.*\\DATA\\).*"
Const sRepl As String = "$1EHC\Investment Committee\indexreturns.xlsb"
Dim sTitle As String

sTitle = Application.Caption

Set wbs = Application.Workbooks
Set re = New RegExp
With re
.Pattern = sPat
.Global = True
.IgnoreCase = True
End With
IndexReturns = re.Replace(ThisWorkbook.FullName, sRepl)

For Each wb In wbs
If wb.FullName = IndexReturns Then Exit Sub
Next wb

Application.ScreenUpdating = False

wbs.Open (IndexReturns)
Set re = Nothing

AppActivate sTitle 'sTitle contains title of thisworkbook

'The below doesn't work either
'AppActivate ThisWorkbook.Application.Caption

Application.ScreenUpdating = True

End Sub
<小时/>

最佳答案

当共产国际的代码没有改变行为时,我关注这是否是一个计时问题,直到代码激活另一个工作簿之后,IndexReturns 才具有事件窗口。对此进行调整的代码似乎已经解决了问题。

在执行 AppActivate 方法之前,我添加了一个循环来测试是否存在 IndexReturns 窗口。

Set wb = wbs.Open(IndexReturns)

Do
DoEvents
Loop Until wb.Windows.Count > 0

AppActivate sTitle

为了更好地衡量,我还使该窗口不可见,因为除了调试目的之外,我不需要访问它:

wb.Windows(1).Visible = False

这似乎解决了Excel 2016与2007相比打开文件不同带来的问题。

关于excel - Workbook_Open 后焦点错误的 Excel 窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34463010/

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