在excel表格中定义对象的位置

Ale*_*pov 1 excel vba

问题:将对象(这里是圆圈)的内容放入相应的单元格中。(在图片上-将“5”放入E3单元格,并将第二个“5”放入F3) 表格

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

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

注意。我不是要解决我的“大学问题”。我只是想要一个提示,我应该在哪里看什么的。

Por*_*ner 5

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

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

    For Each sShapes In wks.Shapes
        MsgBox (sShapes.TopLeftCell.Address)
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)