我正在使用以下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,它仍会给出相同的错误。这是为什么?并且第一个代码也是正确的,并且首先不应该给出错误。那是什么意思呢?提前谢谢!
答案 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
语句中所做的那样。