我正在编写一个宏,它基本上为列中的每个值绘制一个圆,其大小基于该值,但是有些单元格是空白的,我只需要跳过它们。当我点击第一个空白单元格时遇到错误。这是我到目前为止的代码:
Sub plotCircles()
Set R = Range("D7:D205")
For Each Value In R
If Value = "" Then
Value = Value + 1
Else
Set shp = ActiveSheet.Shapes.AddShape(msoShapeOval, 10, 10, Value, Value)
End If
Next Value
End Sub
答案 0 :(得分:1)
试试这个:
Sub PlotCircles()
Dim r As Range, c As Range, shp As Shape
Set r = Sheet1.Range("D7:D205") 'change to suit
For Each c In r
With c
If .Value <> "" Then
Set shp = Sheet1.Shapes.AddShape _
(msoShapeOval, .Left, .Top, .Value, .Value)
Else
.Value = .Value + 1
End If
End With
Next
End Sub
我不知道您为什么要对Left
方法的Top
和AddShape
参数进行硬编码。
这将在同一位置绘制所有圆圈
然而,上方会在单元格中绘制圆圈,您可以从中获取值
您可以根据自己的需要进行调整。 HTH。