Excel VBA 用户窗体编辑器不断自行调整大小
Excel VBA Userform editor keeps resizing by itself
我在 Excel 中创建了一个用户表单并保存了它。当我打开编辑器时,表单会自动调整大小。当我单击表单右下角调整其大小时,它会自动弹回到原来的预期大小(参见下面的 GIF
)。
这也会影响运行时的表单。这是 Microsoft 需要修复的错误,还是有某种我可以禁用的自动调整大小设置?
我确实有这个硬编码预期大小的初始化代码:
Private Sub UserForm_Initialize()
Me.Width = 402.6
Me.Height = 430.8
Me.StartUpPosition = 0
Me.Left = Application.Left + (0.5 * Application.Width) - (0.5 * Me.Width)
Me.Top = Application.Top + (0.5 * Application.Height) - (0.5 * Me.Height)
End Sub
感谢@braX 为我指明了正确的方向。好像是DPI awareness issue.
我的解决方案是检查 Optimize for compatibility
选项,然后重新启动 Excel。
对我来说,以下方法有效。您可能想检查一下;
https://www.mrexcel.com/board/threads/userforms-shrink-on-successive-openings-of-an-excel-file.1078705/
将以下代码添加到用户窗体代码中至少可以保持显示正确。
Private Sub UserForm_Initialize()
With frm40_Overview1
Height = 600
Width = 800
End With
Application.ScreenUpdating = True
End Sub
干杯
我在 Excel 中创建了一个用户表单并保存了它。当我打开编辑器时,表单会自动调整大小。当我单击表单右下角调整其大小时,它会自动弹回到原来的预期大小(参见下面的 GIF
)。
这也会影响运行时的表单。这是 Microsoft 需要修复的错误,还是有某种我可以禁用的自动调整大小设置?
我确实有这个硬编码预期大小的初始化代码:
Private Sub UserForm_Initialize()
Me.Width = 402.6
Me.Height = 430.8
Me.StartUpPosition = 0
Me.Left = Application.Left + (0.5 * Application.Width) - (0.5 * Me.Width)
Me.Top = Application.Top + (0.5 * Application.Height) - (0.5 * Me.Height)
End Sub
感谢@braX 为我指明了正确的方向。好像是DPI awareness issue.
我的解决方案是检查 Optimize for compatibility
选项,然后重新启动 Excel。
对我来说,以下方法有效。您可能想检查一下; https://www.mrexcel.com/board/threads/userforms-shrink-on-successive-openings-of-an-excel-file.1078705/ 将以下代码添加到用户窗体代码中至少可以保持显示正确。
Private Sub UserForm_Initialize()
With frm40_Overview1
Height = 600
Width = 800
End With
Application.ScreenUpdating = True
End Sub
干杯