根据Excel的中心点在Excel中定位形状

时间:2015-04-13 20:19:58

标签: excel

是否可以按中心点定位形状?

我尝试将形状叠加到Excel中的地图图片上,并根据单元格中的值调整形状的大小。

我确定了尺寸部分,但每次我的形状尺寸增加时,由于其左侧和顶部的位置,它会慢慢开始向右和向下移动。如果数据刷新后我的圈子的位置不会移动,我希望如此。我只想改变形状的大小。

有什么想法吗?

Small Shape

Bigger Shape

1 个答案:

答案 0 :(得分:1)

如果您知道要放置它的X / Y(真的是左/上,因为{0,0}是左上角),就可以减去形状大小的一半来获得中心在那里。

这是一些简单的代码,它将圆心放在单元格E8的角落。我假设你有办法根据你的问题选择形状。

Sub PositionByCenter()

    Dim dbl_x As Double
    Dim dbl_y As Double

    'select a cell just to put it somewhere
    dbl_x = Range("E8").Left
    dbl_y = Range("E8").Top

    'grab a reference to a shape
    Dim shp As Shape
    Set shp = Selection.ShapeRange.Item(1)

    'position by the center
    shp.Top = dbl_y - shp.Height / 2
    shp.Left = dbl_x - shp.Width / 2

End Sub

以下是选择圆圈后运行的内容。

circle is now at desired spot