否则如果错误Excel VBA

时间:2013-10-30 05:37:24

标签: excel-vba vba excel

我正在使用以下VBA Else-If代码:

If ActiveSheet.Range(range_name).Value < "8.50%" Then
   ActiveSheet.Shapes.Range(Array(shape_name)).Select
    With Selection.ShapeRange.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(192, 0, 0)
        .Transparency = 0
        .Solid
    End With
    ElseIf ActiveSheet.Range(range_name).Value < "9.70%" Then
     ActiveSheet.Shapes.Range(Array(shape_name)).Select
    With Selection.ShapeRange.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(255, 255, 0)
        .Transparency = 0
        .Solid
    Else
     ActiveSheet.Shapes.Range(Array(shape_name)).Select
    With Selection.ShapeRange.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(0, 255, 0)
        .Transparency = 0
        .Solid
    End With

当我运行它时,会出现错误:“Else without If”。 所以我将ELse行更改为

 ElseIf ActiveSheet.Range(range_name).Value >= "9.70%" Then

即使这个Else有一个If,它仍会给出相同的错误。这是为什么?并且第一个代码也是正确的,并且首先不应该给出错误。那是什么意思呢?提前谢谢!

2 个答案:

答案 0 :(得分:3)

这是因为你在中间遗漏了End With,即这部分

With Selection.ShapeRange.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(255, 255, 0)
        .Transparency = 0
        .Solid

答案 1 :(得分:1)

添加:

End If

在最后一行。
这是为了终止if语句,就像你在With语句中所做的那样。