偶尔,我会遇到一个电子表格,其中包含一些神奇的按钮或下拉框,随着时间的推移它们变得越来越大或越来越小。
代码中没有任何指示。
还有其他人经历过这种“乐趣”吗?
偶尔,我会遇到一个电子表格,其中包含一些神奇的按钮或下拉框,随着时间的推移它们变得越来越大或越来越小。
代码中没有任何指示。
还有其他人经历过这种“乐趣”吗?
Private Sub MaterialNum_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
' Reset the size, font style, and size
With Worksheets("QuoteForm").Shapes("MaterialNum")
.Height = 21
.Width = 101.25
.Left = 972.75
.Top = 87
With .DrawingObject.Object.Font
.Name = "Arial"
.Size = 12
End With
End With
End Sub
很奇怪,当查询宽度和高度属性时(无论是在代码中还是使用属性表),它们不会缩小,但显然它们确实会改变。
我注意到,如果我使用属性表并将宽度从标准的15更改为14,然后再更改回15,它就会修复。
以下代码对我有效(并在表格上产生有趣的视觉效果:您单击后,它会收缩,屏幕闪烁,然后再扩展回来)。
我的解决方案(在复选框的单击事件中):
Dim myCtrl As OLEObject
For Each myCtrl In ActiveSheet.OLEObjects
myLab = myCtrl.Name
myCtrl.Height = 14 ' to "wake up" the property.
myCtrl.Height = 15 ' to reset it back to normal
myCtrl.Width = 12 ' just making sure
Next myCtrl
虽然这是一个旧的帖子,但我也遇到了同样的问题,并通过首先将出现问题的选项按钮分组,然后在Auto_Open中简单地设置(重置)此组的大小来解决它:
With ThisWorkbook
.Worksheets("1").Shapes("grpInput").Width = 383.1
.Worksheets("2").Shapes("grpSuite").Width = 383.1
.Worksheets("3").Shapes("grpLoc").Width = 383.1
.Worksheets("4").Shapes("grpDecision").Width = 383.1
End With
请使用以下方法进行检查:
格式 | 属性 | 对象定位
选择除“随单元格移动和调整大小”以外的任何选项。
[EXCEL PROFESSIONAL PLUS 2016, 32BITS, VERSION 1802, BUILD 9029.2167]
我曾遇到同样的问题,但我成功地通过自定义 Windows 10 (64位)显示缩放来解决。这非常简单,只适用于单个用户。按照以下说明操作,您就可以将所有表单控件、工作表形状、图形和 ActiveX 控件恢复到原始大小,无需编程或进行高级技巧/魔法/黑客。如果提供的链接失效,请重复以下步骤:
要在 Windows 10 中设置自定义显示缩放,请执行以下操作:
打开“设置”。
这是一篇旧文章,但我希望它能帮助任何正在处理这个令人烦恼和压力的 Excel 问题的人。
https://winaero.com/blog/set-display-custom-scaling-windows-10/
我遇到了类似的问题,但是我发现通过放大和缩小页面可以很快地解决。因此,我在我的宏的底部添加了以下代码作为快速修复。虽然我不是Excel专家,但它似乎还可以正常工作。更改底部的数字应反映您首选的缩放比例。
ActiveWindow.Zoom = 100
ActiveWindow.Zoom = 90
我有时也会遇到同样的问题。在我的情况下,我可以在一个文件上复制它100%,但在一个几乎相同的文件上不一致。我还发现大小错误并不是永久性的 - 我可以保存并重新打开文件以恢复按钮的外观。我还可以创建一个新窗口,然后丢弃损坏的窗口。我使用单个监视器配置。
对于我来说,当我访问工作表的HPageBreaks集合时,按钮会重新调整大小。我通过以下临时更改窗口视图来避免这个问题:
ActiveWindow.View = xlPageBreakPreview
' do pagination stuff using HPageBreaks
ActiveWindow.View = xlNormalView
将此代码添加到.reg文件中。双击并确认。重新启动Excel。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel\options]
"LegacyAnchorResize"=dword:00000001
[HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\Draw]
"UpdateDeviceInfoForEmf"=dword:00000001
14.0
部分是否仅适用于特定版本的 Excel?在我的 Windows 10 笔记本电脑上,我的 Excel 2007 "(12.0.6771.5000) SP3 MSO (12.0.6772.5000)"
中没有那个 14.0
(无论这两个不同的数字意味着什么)。不过,我确实有 12.0
和 16.0
,所以我尝试了您的解决方案,只需将14
更换为 12
和 16
,但在任何情况下都不起作用(在启动 Excel 之前,我使用 regedit
验证了预期位置是否创建了键)。 - SantiBailors我发现问题似乎只会在冻结窗格打开时出现,这在大多数应用程序中通常都是开启的,因为您会将命令按钮等放置在不会滚动出视图的位置。
我的解决方案是对控件进行分组,但还要确保该组超出了冻结窗格区域。我通过在冻结窗格区域外添加一个控件来实现这一点,将其添加到组中,但也隐藏该控件,以便您看不到它。