尝试调整 VBA 脚本中的形状大小但无法精确调整大小
Trying to adjust size of shapes in VBA script but cannot get to size precisely
我发现在 Excel 中调整形状的大小非常令人沮丧。出于某种原因,当我调整高度时,宽度会调整为某个随机数,反之亦然。我没有锁定宽高比,并且勾选了 Don't move or size with cells。这些形状是圆形,我试图将它们格式化为具有相同的高度和宽度 (12 x 12)
认为这是由于 Format Shape 控件中的一些错误,我编写了一个非常简单的脚本来遍历 sheet 中的所有形状并更正它们属性,但同样的问题仍然存在。
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
请尝试下一个代码:
Sub FixButFormat()
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
With sh
.LockAspectRatio = msoFalse
.height = 12
.width = 12
.placement = xlMove
.LockAspectRatio = msoTrue
End With
Next sh
End Sub
但是,如果形状是圆形,是否有可能不再是圆形?我的意思是在两个轴上具有相同的尺寸。否则,只修改一维就够了,保持LockAspectRatio = msoTrue
...
我发现在 Excel 中调整形状的大小非常令人沮丧。出于某种原因,当我调整高度时,宽度会调整为某个随机数,反之亦然。我没有锁定宽高比,并且勾选了 Don't move or size with cells。这些形状是圆形,我试图将它们格式化为具有相同的高度和宽度 (12 x 12)
认为这是由于 Format Shape 控件中的一些错误,我编写了一个非常简单的脚本来遍历 sheet 中的所有形状并更正它们属性,但同样的问题仍然存在。
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
请尝试下一个代码:
Sub FixButFormat()
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
With sh
.LockAspectRatio = msoFalse
.height = 12
.width = 12
.placement = xlMove
.LockAspectRatio = msoTrue
End With
Next sh
End Sub
但是,如果形状是圆形,是否有可能不再是圆形?我的意思是在两个轴上具有相同的尺寸。否则,只修改一维就够了,保持LockAspectRatio = msoTrue
...