【问题标题】:WorkbookOpen event doesn't fire when opening Workbooks in "Protected View"在“受保护的视图”中打开工作簿时不会触发 WorkbookOpen 事件
【发布时间】:2019-06-04 19:28:20
【问题描述】:

2 监视器设置。 1 在右侧监视器中打开活动工作簿。我想在左侧显示器中打开新打开的工作簿。我找到了如何做到这一点并且它可以工作,但是如果文件在“受保护的视图”中打开,它不会触发。

如果我单击启用编辑,屏幕会出现一些闪烁,就像它正常工作一样,但窗口最终仍显示在右侧显示器上。随后打开文件会正确触发宏。但是,这对我不起作用,因为我在 Outlook 中打开附件。

有什么办法吗?

这是在我的Personal.XLSB 文件的"ThisWorkbook" 模块中:

Private WithEvents app As Application


Private Sub Workbook_Open()
    Set app = Application
End Sub


Private Sub app_WorkbookOpen(ByVal Wb As Workbook)
    If Not Win_Toggle = 1 Then Exit Sub

    With app
        .WindowState = xlNormal
        .Left = -500
        .WindowState = xlMaximized
    End With
End Sub

切换当然设置为 1..

理想情况下,它会在打开时触发,无需我点击“启用编辑”。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    不会为在受保护视图中打开的工作簿触发 WorkbookOpen 事件。你需要ProtectedViewWindowOpen event

    Private Sub app_ProtectedViewWindowOpen(ByVal Pvw As ProtectedViewWindow) 
        If Not Win_Toggle = 1 Then Exit Sub
    
        With app
            .WindowState = xlNormal
            .Left = -500
            .WindowState = xlMaximized
        End With        
    End Sub
    

    【讨论】:

    • 这很好用,文件按预期在左侧监视器中打开。附注:当我单击“启用编辑”时,它会在右侧显示器上弹出。增加左移为我解决了这个问题。但是,在我看来,它仍然应该可以正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 2015-04-04
    • 2019-12-05
    相关资源
    最近更新 更多