我正在尝试使用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
请帮助,任何想法都会受到赞赏。
答案 0 :(得分:1)
当您的形状被命名为1到10时,您的x会给出索引号而不是名称。
ActiveSheet.Shapes(CStr(x)).Select
答案 1 :(得分:0)
据我所知,它选择的形状是随机的。
之所以会发生这种情况,是因为使用数字值时,实际上是指Shapes
集合中形状的位置。使用字符串值时,是指形状的名称。床单也一样。见我的answer。