Excel用户窗体显示大小错误

时间:2018-07-25 21:29:51

标签: excel vba excel-vba userform

我在使用Excel UserForms时遇到一个非常奇怪的问题;当我通过单击工作表中的命令按钮来显示表单时,表单的大小会明显变形,从而使其实质上无法使用。下图说明了这一点。

尺寸变形前的形状(预期尺寸) Form before size warping (intended size)

尺寸变形后形成 Form after size warping

我使用多屏幕设置,只有在仅使用笔记本电脑而没有其他显示器时才出现此尺寸问题。但是,即使使用通常的设置,它现在也开始出现。此外,在某些情况下,翘曲复合以及随后的每个形式都会初始化。我在下面提供了示例图片。

变形前的表格(预期大小) Form before warping (intended size)

变形后的形式(第一次迭代) Form after warping (first iteration)

复合变形(第二次迭代) Compounded warping (second iteration)

进一步复合变形(第三次迭代) Further compounded warping (third iteration)

我已经尝试通过属性窗口和Userform_Initialize()事件手动设置height和width属性,但仍然会得到奇怪的结果。在属性窗口中,输入高度和宽度后输入的值会自动更改,通常会导致不良的长宽比,当我尝试使用VBA调整大小时也会发生类似的情况。我认为代码不是问题所在,因为我只是设置.Height和.Width属性,所以没有太大的出错空间。

我已经进行了比较广泛的研究,但是没有找到有关此问题的任何信息。我正在使用Excel 2016;任何帮助将不胜感激!

4 个答案:

答案 0 :(得分:1)

我认为您的问题可能与我的here有关。

@Lance Phillips:使用Excel 2016 32位Windows 10 64位版时,我所缺少的选项(在网上找到以下图片)。我不知道为什么。即使连接了额外的显示器。

enter image description here

编辑:显然,这是Office内部版本9330.1000的一项新功能,请参阅here

答案 1 :(得分:1)

在Windows(轻松访问)中检查放大倍数设置。它完全使我的表格大小。有些很大,有些很小。字体大小就是您的示例。创建表单时,它继承了Windows放大率。

答案 2 :(得分:0)

这是Excel中出现的新问题。我也看到了我的应用程序。在“ Excel常规选项”中,将其设置为“优化兼容性”,该问题将消失。

答案 3 :(得分:0)

其他用户可能不知道设置兼容模式。如果电子表格将与多个用户共享,请使用此代码在每次打开时设置正确的表单大小。

Private Sub UserForm_Initialize()  
'  
' Initialize frm  
' (This runs everytime the form is opened)  
' frm is the form name  
'  
    ' Reset the size  
    With frm  
        ' Set the form size  
        Height = {enter desired form height}  
        Width = {enter desired form width}  
    End With  
End Sub