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

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

我在VBA编程方面有一些经验(对于excel)。 而我所知道的 – 这是不可能的。 我们可以迭代表单中的所有对象,获取它的内容,但是我们仍然无法定义它(对象的)坐标。 所以这个问题是无法解决的。

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

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

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

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