使用VBA在Excel中选择形状

时间:2018-07-03 14:46:27

标签: excel vba excel-vba shapes

我正在尝试使用VBA通过名称选择形状。在我的工作表中,我有10个形状,分别为1到10,并想要一个特定的形状。由于某些原因,excel用我的代码选择的形状似乎不是我告诉它选择的名称的形状。据我所知,它选择的形状是随机的。这是我的代码(x值应该检索从1到10输入的数字值):

Sub FindTheShape()

Sheets("Fleet 1").Select
Dim x As Long
x = ActiveSheet.Range("$A$1000").End(xlUp).Value

ActiveSheet.Shapes(x).Select

End Sub

请帮助,任何想法都会受到赞赏。

2 个答案:

答案 0 :(得分:1)

当您的形状被命名为1到10时,您的x会给出索引号而不是名称。

ActiveSheet.Shapes(CStr(x)).Select

答案 1 :(得分:0)

  

据我所知,它选择的形状是随机的。

之所以会发生这种情况,是因为使用数字值时,实际上是指Shapes集合中形状的位置。使用字符串值时,是指形状的名称。床单也一样。见我的answer