【问题标题】:Display Excel on the primary monitor在主显示器上显示 Excel
【发布时间】:2015-03-25 13:03:38
【问题描述】:

我在打开 excel 文件时会自动打开一个用户表单。它有一些显示问题,因为向下滚动表单时选项按钮会消失。仅当我有 2 台显示器(主要和次要)时才会出现此问题。我注意到这两种情况:

  1. 如果我打开任何 Excel 文件并在主屏幕中使其全屏显示,然后关闭它,然后打开用户窗体,它工作正常!
  2. 如果我打开任何 excel 文件并将其移动到辅助屏幕然后 关闭它并打开用户表单,问题就出现了!

所以,我的问题是:

有什么办法可以强制 Excel 在主屏幕全屏打开?

【问题讨论】:

  • 我猜你已经尝试在你的开幕活动中添加 Application.WindowState = xlMaximized,但我不知道如何强制它在一个屏幕上......
  • 谢谢,完整答案见下文

标签: excel vba userform multiple-monitors


【解决方案1】:

将此添加到Workbook_Open() 事件过程,您将能够在主监视器上以全屏模式打开工作簿。

Private Sub Workbook_Open()
   Application.Top = 0
   Application.Left = 0
   Application.DisplayFullScreen = True
End Sub

【讨论】:

  • 谢谢,实际上,如果我打开 excel 文件并将其最小化并将其移动到第二个屏幕然后关闭它,再次打开它,它确实将它移动到主屏幕但不是全屏,所以我补充说:Application.WindowState = xlMaximized 现在它工作正常!
  • 我们也可以为用户窗体执行此操作吗?因为我已经遇到过几次问题了
  • 我正在为用户表单执行此操作,因为我正在获取应用程序的高度和宽度并将其应用于用户表单,请在我的答案中查看我的最终代码
【解决方案2】:

似乎 VBA 受最后打开的 Excel 文件的尺寸影响,我的意思是,如果它是全屏或正常显示以及在哪个屏幕中显示。 另一个需要考虑的问题是:如果副屏上显示了一个Excel文件,并且这个屏比主屏大,那么Application.Top、Application.Left将无法成功将应用程序拉到主屏上。屏幕,需要先正常显示。 我解决自己问题的最终代码是:

Application.Visible = True
Application.WindowsState=xlNormal
Application.Width =100
Application.Height =100
Application.Top = 0
Application.Left = 0
Application.WindowsState =xlMaximized
With UserForm2
.Height=Application.Height
.Width=Application.Width
End With
UserForm2.ScrollBars = fmScrollBarsVertical
UserForm2.KeepScrollBarsVisible = fmScrollBarsVertical
UserForm2.Zoom = 120
UserForm2.ScrollHeight = (120 * nq) + 120
UserForm2.Show vbModeless
Application.Visible = False

【讨论】:

    猜你喜欢
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多