插入没有SELECT的形状

我的一段代码遍历一系列单元格,如果某个单元格满足某些条件 – 将该形状插入此单元格中。 它的工作原理,但我想找出一个避免select的替代方法。

 'above - code to find satisfying cell ActWS.Activate 'Activate Sheet ActWS.Cells(rActPlan - 1, vReturnColumn).Select 'Select satisfying cell ActiveSheet.Shapes.AddShape(msoShapeOval, ActiveCell.Left, ActiveCell.Top, ActiveCell.Width, ActiveCell.Height).Select Selection.ShapeRange.Fill.Visible = msoFalse With Selection.ShapeRange.Line .Visible = msoTrue .ForeColor.RGB = RGB(0, 255, 0) .Weight = 2.25 End With 

此代码删除所有.SelectActiveCell引用:

 With ActWs Dim rng as Range Set rng = .Cells(rActPlan - 1, vReturnColumn) Dim shp as Shape Set shp = .Shapes.AddShape(msoShapeOval, rng.Left, rng.Top, rng.Width, rng.Height) With shp.ShapeRange .Fill.Visible = msoFalse With .Line .Visible = msoTrue .ForeColor.RGB = RGB(0, 255, 0) .Transparency = 0 .Weight = 2.25 End With End With End With 

AddShape()返回刚刚添加的形状对象,所以你应该能够使用类似下面的代码 – 然后引用shp而不是Selection

 Dim shp as Shape Set shp = ActiveSheet.Shapes.AddShape(msoShapeOval, ActiveCell.Left, _ ActiveCell.Top, ActiveCell.Width, ActiveCell.Height)