我在网上搜索了一段时间,确实找到了一些解决方案,但似乎没有一个对我有帮助。
我在 Excel 2010 中有一个用户窗体,我想将其置于 Excel 窗口的中心。我有双显示器,它似乎总是在两个显示器之间居中。我知道您可以编辑一些属性,例如 StartUpPosition 等,以控制它的去向,但似乎更改这些参数没有任何作用。这是我在网上找到的代码,许多用户证明可以为他们工作。我的表单名为“HighlightForm”
Private Sub HighlightForm_Activate()
With HighlightForm
.StartUpPosition = 0
.Left = Application.Left + (0.5 * Application.Width) - (0.5 * .Width)
.Top = Application.Top + (0.5 * Application.Height) - (0.5 * .Height)
.Show
End With
End Sub
然而,这根本不会改变我的表格放置的位置。它仍然位于中心。我什至尝试将所有这些参数更改为零,但无济于事。我将此代码放置在用户窗体代码本身中,我认为这是正确的放置位置。我也尝试过HighlightForm_Initialize(),但它仍然不会响应任何更改。
我是否遗漏了一些明显的东西?我不认为这是一个非常困难的问题,但我真的很难过。预先感谢您的帮助。
我发现这段代码非常适合我
Private Sub UserForm_Activate()
'Position top/left of Excel App
Me.Top = Application.Top
Me.Left = Application.Left
'Approx over top/left cell (depends on toolbars visible)
Me.Top = Application.Top + (Application.UsableHeight / 2)
Me.Left = Application.Left + (Application.UsableWidth / 2)
End Sub
请注意,您可以将“/2”调整为居中一点,因为它可能会给较小的显示器带来不同的感觉(它将用户窗体的左上角调整到屏幕的中心)。我的代码有 2.3
我知道这是一个老问题,但我想我会为遇到这个问题的其他人指出错误。
您的子项名为“Private SubhighlightForm_Activate()”
必须调用“Private Sub UserForm_Activate()”
这与用户表单本身的名称无关。
我发现更改
.StartUpPosition = 3
(Windows 默认值)并使用代码更改左上角点,它会以 Excel 窗口为中心。除非您的 Excel 拉伸超过 2 个屏幕或用户表单的宽度/高度大于屏幕,否则用户表单不应位于显示器之间。
《英雄联盟》非常棒!干杯