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

时间:2015-02-18 01:26:38

标签: excel vba excel-vba

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

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

1 个答案:

答案 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方法的TopAddShape参数进行硬编码。
这将在同一位置绘制所有圆圈 然而,上方会在单元格中绘制圆圈,您可以从中获取值 您可以根据自己的需要进行调整。 HTH。