2016-09-21 66 views
-4

我使用IF条件,但给我的编译错误“否则没有IF” 我想正确的循环语句,所以它会计算公式,直到显示单元收到错误味精同时使用IF条件

With Range("K3:K" & LR) 
LR = Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row 

With .Resize(.Rows.Count - 1, .Columns.Count).Offset(2, 0) 


If Range("K" & LR).Value = "No" Then 
With .Resize(.Rows.Count - 1, .Columns.Count).Offset(2, 0) 
With Range("L3:L" & LR) 
Sheets("Sheet1").Range("L3" & LR).FormulaR1C1 = "" 

ElseIf Range("K" & LR).Value = "Yes" Then 

With .Resize(.Rows.Count - 1, .Columns.Count).Offset(2, 0) 
With Range("L3:L" & LR) 
Sheets("Sheet1").Range("L3" & LR).FormulaR1C1 = "=RC[-2]*0.25%" 

Else 

Return 




End With 
End With 
    End If 
    End With 
    End With 

请帮助你解决这个问题

+3

有4个嵌套'With'块,我强烈建议正确的缩进。您会注意到'ElseIf'在'With Range(“L3:L&LR)”块中确实没有'If'。 – arcadeprecinct

+1

我计数6'With'和4'End With',这样就指出了问题的存在......另外,VBA中没有'Return',除非这是你创建的方法。 –

+0

我已经添加了2 End With和Else Return,但是它仍然给出相同的错误消息 –

回答

5

你不能交错块。

下面的代码将产生一个End If without If block错误:

If True Then 
    With Range("A1") 
End If 
    End With 

下面的代码将产生一个End With without With block错误:

With Range("A1") 
    If True Then 
End With 
    End If 

使用这样的代码:

With Range("A1") 
    If True Then 
    End If 
End With 

If True Then 
    With Range("A1") 
    End With 
End If 

正如arcadeprecinc所提到的,代码的正确缩进会显示出问题。