在for循环中跳到VBA中的下一个单元格

我正在编写一个macros,基本上为每个值在一个基于该值的列中绘制一个圆,但有些单元格是空白的,我只需要跳过它们。 当我点击第一个空白单元格时遇到错误。 这是我迄今为止的代码:

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 

尝试这个:

 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 

我不知道为什么硬编码AddShape方法的LeftTop参数。
这将绘制在同一地点的所有圈子。
但是在上面绘制圆圈的单元格中,您可以从中获取值。
您可以调整以适应您的需求。 HTH。