Excel:令人难以置信的缩小和扩展控件

Nic*_*ick 59 excel vba excel-2007 excel-2003 excel-2010

偶尔,我会遇到一个电子表格,它会受到魔法按钮或列表框的影响,随着时间的推移会变大或变小.

代码中没有任何内容可以指示这一点.

还有其他人经历过这种快乐吗?

mat*_*ack 32

问题似乎与Windows处理监视器上的非原生分辨率的方式有关,可以通过多种方式避免

当问题发生时,问题可能是一场彻底的噩梦,但它只是间歇性地发生.

我们最近一直在测试一个由几十个人使用的excel工作表,并且已经对原因和一些可能的修复有了很好的了解.

原因似乎与屏幕用于除原始分辨率之外的任何设置有关.如果用户将外部显示器插入笔记本电脑并且未仔细选择最终的屏幕配置,则可能很容易发生这种情况.例如,如果将笔记本电脑插入投影仪(可能是旧的1024 x 768显示器),但笔记本电脑是1280 x 800,用户选择复制显示而不是扩展("连接到"投影机"或"显示"Windows 7中的控制面板",结果是在两个屏幕上都具有不可预测且通常不令人满意的图像,两者都具有非原始分辨率.我们发现这些设置几乎总是会导致Excel按钮出现严重问题,尤其是ActiveX控件.有时,在反复点击时,它们会缩小到不可读性; 其他时候他们扩展到覆盖整个屏幕.

大多数情况下,当我们指示用户使用扩展显示设置,结果是使用原生分辨率的两个屏幕时,我们看不到问题.

还有基于代码的方法来最小化问题.我们尝试在点击它们时重置按钮和控件的位置和大小(如果你有很多按钮,这会增加许多繁琐的代码).这有时会奏效.我们还尝试将autosize属性从true切换为false并返回(这在开发人员模式下手动工作)并且这修复了更多实例,但显然不是全部.

  • @Nick我刚刚通过为违规复选框设置OnClick事件来做到这一点,该复选框只是将控件的`Width`属性设置为`.Width + 1`然后立即设置`.Width - 1`.单击时控件会缩小,但在单击后会自动重置. (2认同)
  • @nhinkle我刚刚发现一个人也可以在按钮代码中执行`.Width = .Width`。 (2认同)

Nic*_*ick 12

发现原因是人们在通过远程桌面访问的计算机上打开spreasheet,并且本地和远程计算机之间的屏幕分辨率存在差异.这会影响控件工具箱中可用的控件,但是使用旧的学校表单按钮控件仍然会遇到问题,所以我不满意的答案是使用它.


pet*_*000 5

多年来,这一直困扰着我.周围有很多修复,但它们似乎很受欢迎.它仍然出现在Excel 2010中(发生在2014年5月),并且仍然在某些报告中出现在Excel 2013中.我发现的最佳描述至少符合我的情况(Excel 2010,没有涉及RDP,没有涉及打印预览)在这里:

Microsoft Excel支持团队博客:ActiveX和表单控件在单击或执行打印预览时自行调整大小(在Excel 2010中)

(这可能对Excel 2013的用户无济于对不起)

编辑:添加细节以防万一科技网络链接死了,technet文章说:

首先为Excel 2010安装Microsoft Hotfix 2598144,可用:此处.

第二,如果您的症状是 "在Excel 2010工作表中单击它后,ActiveX按钮更改为不正确的大小",那么您应该:

  • 单击"开始",单击"运行",在"打开"框中键入regedit,然后单击"确定".
  • 找到并选择以下注册表子项HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Options
  • 在"编辑"菜单上,指向"新建",然后单击"DWORD(32位)"值.
  • 键入LegacyAnchorResize,然后按Enter键.
  • 在"详细信息"窗格中,右键单击"LegacyAnchorResize",然后单击"修改".
  • 在"数值数据"框中,键入1,然后单击"确定".
  • 退出注册表编辑器

或者其次,如果您的症状是 "在Excel 2010中查看工作簿的打印预览后,工作簿中的按钮窗体控件显示不正确",那么您应该:

  • 单击"开始",单击"运行",在"打开"框中键入regedit,然后单击"确定".
  • 找到并选择以下注册表子项:HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Options
  • 在"编辑"菜单上,指向"新建",然后单击"DWORD(32位)"值.
  • 键入MultiSheetPrint,然后按Enter键.
  • 在"详细信息"窗格中,右键单击"MultiSheetPrint",然后单击"修改".
  • 在"数值数据"框中,键入1,然后单击"确定".
  • 再次选择以下注册表子项:HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Options
  • 在"编辑"菜单上,指向"新建",然后单击"DWORD(32位)"值.
  • 键入LegacyAnchorResize,然后按Enter键.
  • 在"详细信息"窗格中,右键单击"LegacyAnchorResize",然后单击"修改".
  • 在"数值数据"框中,键入1,然后单击"确定".
  • 退出注册表编辑器

或者第二,如果您的症状是 "在查看工作表的打印预览后,Excel 2010工作表中的ActiveX按钮更改为不正确的大小",那么您应该:

  • 单击"开始",单击"运行",在"打开"框中键入regedit,然后单击"确定".
  • 找到并选择以下注册表子项:HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\Options
  • 在"编辑"菜单上,指向"新建",然后单击"DWORD(32位)"值.
  • 键入LegacyAnchorResize,然后按Enter键.
  • 在"详细信息"窗格中,右键单击"LegacyAnchorResize",然后单击"修改".
  • 在"数值数据"框中,键入1,然后单击"确定".
  • 退出注册表编辑器

祝好运.这个问题真是太痛苦了......


小智 5

实际上,这个问题是由于屏幕分辨率造成的.最常见的情况是,当用户使用excel应用程序连接到投影仪或WebEx时.

解决此问题的一个简单方法是要求用户在没有任何外围设备连接(投影仪)的情况下重新启动计算机,然后再次打开Excel应用程序.