Excel 如何获取工作表中形状的相对位置

Excel 如何获取工作表中形状的相对位置,excel,vba,position,shapes,Excel,Vba,Position,Shapes,如果你想到单元格,我们从逻辑上知道第2行高于第100行 然而,如果我有两个形状(比如说圆),我如何确定哪一个比另一个高,或者比其他的更左 UPDTAE 其中是所有对象的对象模型,以及类似于1的方法/属性。图表>>左上角 以下是一些代码,用于显示每个形状的行: Sub dural() Dim s As Shape, mesage As String For Each s In ActiveSheet.Shapes mesage = mesage & vb

如果你想到单元格,我们从逻辑上知道第2行高于第100行

然而,如果我有两个形状(比如说圆),我如何确定哪一个比另一个高,或者比其他的更左

UPDTAE

  • 其中是所有对象的对象模型,以及类似于1的方法/属性。图表>>左上角

以下是一些代码,用于显示每个形状的行:

Sub dural()
    Dim s As Shape, mesage As String
    For Each s In ActiveSheet.Shapes
        mesage = mesage & vbCrLf & s.Name & "---" & s.TopLeftCell.Row
    Next s
    MsgBox mesage
End Sub

查看形状对象的
.TopLeftCell.Address
,但是形状是否始终与单元格对齐,或者是否可以是自由的。我精通VBA,但我从未找到VBA的完整对象模型,其中只列出了其他人教程中的所有对象(wksht、wb、形状、图表、轴等)。未对齐,但它知道形状占据的最左上角的单元格是什么。你可以把它作为参考。如果您不想使用单元格引用,形状还具有
.Top
.Left
属性。0表示形状一直位于顶部,或一直位于左侧答案可能会对您有所帮助。。您应该能够深入到任何一个部分,如(即方法和属性)或,等等。