2016-09-21 67 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所提到的,代碼的正確縮進會顯示出問題。