如何控制多台显示器上的显示位置

时间:2020-06-15 10:30:08

标签: excel vba windows

如何在运行Excel的同一台显示器上显示消息框或启动用户窗体?

使用多个监视器时,Excel将在第二个监视器上显示消息框,即使我打开一个新的用户窗体,它也会在第二个监视器中而不是在运行Excel的监视器中打开它。

1 个答案:

答案 0 :(得分:0)

我认为您不能影响MsgBox的显示位置-至少不能以简单的方式。

此外,处理多个监视器并检查在哪个监视器上显示应用程序并非易事。首先,您可以看看https://stackoverflow.com/a/7241038/7599798

但是,显示“上方” Excel表单的简单得多的方法是读取应用程序属性(.Left.Top)并相应地设置表单属性。

如果显示表单 modal ,则必须在表单代码本身中执行以下操作:

Private Sub UserForm_Activate()
    Me.Left = Application.Left + 100
    Me.Top = Application.Top + 40
End Sub

如果您尝试将其放入调用该表单的模块代码中,它将无法正常工作,因为Show命令将覆盖它:

Sub showForm()
    ' ********************************************
    ' This is not working!!!
    ' ********************************************
    Dim frm As UserForm1
    Set frm = New UserForm1
    With frm
        .Left = Application.Left + 100
        .Top = Application.Top + 40
        .Show
    End With
End Sub