【发布时间】:2023-04-01 19:53:01
【问题描述】:
我发现在 Excel 中调整形状的大小非常令人沮丧。出于某种原因,当我调整高度时,宽度会调整为某个随机数,反之亦然。我没有锁定纵横比,并且勾选了 Don't move or size with cells。形状是圆形,我正在尝试将它们格式化为具有相等的高度和宽度(12 x 12)
认为这是由于 Format Shape 控件中的一些错误,我编写了一个非常简单的脚本来遍历工作表中的所有形状并更正它们的属性,但同样的问题仍然存在。
Sub FixButFormat()
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
sh.Select
Selection.ShapeRange.LockAspectRatio = msoFalse
Selection.ShapeRange.Height = 12
Selection.ShapeRange.Width = 12
Selection.Placement = xlMove
Selection.ShapeRange.LockAspectRatio = msoTrue
Next sh
End Sub
【问题讨论】:
-
您的代码是否按预期工作?如果不是,那是什么问题?
-
不需要选择任何东西,不要使用
ShapeRange属性。使用形状尺寸、属性...
标签: vba formatting resize shapes