2016-01-21 23 views
4

我的一段代码遍历一系列单元格,如果某个单元格满足某些条件 - 将该形状插入此单元格中。它的工作原理,但我想找出一种避免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 

回答

5

此代码删除所有.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 
3

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

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