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

4
如果你想到单元格,我们就知道逻辑上第二行比第100行高。
但是如果我有两个形状(比如圆形),怎样确定哪一个比其他的更高或更靠左?
更新:
所有对象和方法/属性的对象模型在哪里,例如1.图表>>左上角
图片链接:https://istack.dev59.com/KvRSH.webp

2
查看形状对象的.TopLeftCell.Address - tigeravatar
但是形状是否总是与单元格对齐,还是可以自由移动的?我精通VBA,但我从未找到完整的VBA对象模型清单,列出所有对象(wksht、wb、shapes、charts、pivot等),只能从其他人的教程中收集碎片化的信息。 - yoshiserry
3
虽然未对齐,但它知道所占据形状的左上方单元格。您可以将其用作参考。如果不想使用单元格引用,则形状还具有“ .Top”和“ .Left”属性。0 表示形状在最顶部或最左边。 - tigeravatar
这里的答案可能会对你有所帮助:[http://stackoverflow.com/a/22731978/2521004]。 - Automate This
Excel对象模型。您可以深入了解其中的任何部分,例如图表对象成员(即方法和属性),或形状对象等。 - David Zemens
1个回答

4

这里是用于显示每个形状行的代码:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接