在Excel工作表中定义对象的位置

时间:2014-03-29 11:49:39

标签: excel vba excel-vba

问题:将对象(此处为圆圈)内容放入相应的单元格中。 (在图片上 - 将" 5"放入E3单元格,并将第二个" 5"放入F3) excel table

我在VBA编程方面有一些经验(对于excel)。 我所知道的一切 - 这是不可能做到的。我们可以遍历工作表上的所有对象,获取它的内容,但我们仍然无法定义它(对象')坐标。 所以这个问题无法解决。

但我决定问SO社区,因为我可能错了。 如果你给我一些信息 - 我会很感激。

NB。我并没有要求解决我的大学问题"。我只是想要一个提示,我应该看看什么。

1 个答案:

答案 0 :(得分:3)

如果我理解正确,您想要返回形状所在的单元格位置?您可以显示形状左上角的单元格地址,如下所示:

Sub getLocation()
    Dim wks As Worksheet
    Set wks = Sheets("Sheet1")

    For Each sShapes In wks.Shapes
        MsgBox (sShapes.TopLeftCell.Address)
    Next
End Sub

您还可以将形状移动到特定单元格,如下所示:

Sub getLocation()
    Dim wks As Worksheet
    Set wks = Sheets("Sheet1")

    'move shape 'Oval 1' to cell H3
    wks.Shapes("Oval 1").Left = wks.Cells(3, 8).Left
    wks.Shapes("Oval 1").Top = wks.Cells(3, 8).Top
End Sub