尝试调整 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...