Excel 通过单击对象来选择它

Excel 通过单击对象来选择它,excel,vba,Excel,Vba,我有一个宏,可以在单击特定形状时更改工作表上形状的颜色 然而,当我点击这个形状时,它并没有真正选择它,所以我不能将这个“点击的图像”与其他图像区别开来,因为点击并没有选择形状 如何通过单击形状同时执行宏来选择形状 我需要执行此宏: For Each shp In ActiveSheet.Shapes shp.Fill.ForeColor.RGB = RGB(255, 255, 255) shp.Line.ForeColor.RGB = RGB(138, 206, 174) shp.Line.We

我有一个宏,可以在单击特定形状时更改工作表上形状的颜色

然而,当我点击这个形状时,它并没有真正选择它,所以我不能将这个“点击的图像”与其他图像区别开来,因为点击并没有选择形状

如何通过单击形状同时执行宏来选择形状

我需要执行此宏:

For Each shp In ActiveSheet.Shapes
shp.Fill.ForeColor.RGB = RGB(255, 255, 255)
shp.Line.ForeColor.RGB = RGB(138, 206, 174)
shp.Line.Weight = 1
End If
Next
…并且需要更改单击的形状,如下所示:

With Selection.ShapeRange
.Fill.ForeColor.RGB = RGB(208, 209, 208)
.Line.ForeColor.RGB = RGB(0, 0, 0)
.Line.Weight = 6

查看using
Application.Caller
——在通过单击形状调用的方法中,这将为您提供单击形状的名称

比如:

Dim shp As Shape
Set shp = ActiveSheet.Shapes(Application.Caller) 

应该为您提供单击的形状。

单击的形状是一组形状,还是一个形状?基于第二段中的
ShapeRange
而感到疑惑。看看
Application.Caller
,所以
ActiveSheet.Shapes(Application.Caller)
应该给你点击的形状。@BigBen,点击的形状只是一个形状。那么Tim的答案正是你需要的。我必须手动添加到:thishworkbook.Sheets(“xxx”).Shapes(x89)。选择继续并执行第二个snipet