2014-02-21 60 views
0

我嘗試運行代碼時,列「L」和列「V」表示「完成」兩個。然後列「W」將顯示「Completed」,否則它將顯示「未完成」,但顯示編譯錯誤「Else with you if」。Excel VBA編譯錯誤否則沒有如果

下面是我的代碼

Sub OverallStatus() 

Dim x As Long 
Dim lastrow As Long 

With Sheet1 
    If Application.WorksheetFunction.CountA(.Cells) <> 0 Then 
     lastrow = .Cells.Find(What:="*", _ 
        After:=.Range("A1"), _ 
        Lookat:=xlPart, _ 
        LookIn:=xlFormulas, _ 
        SearchOrder:=xlByRows, _ 
        SearchDirection:=xlPrevious, _ 
        MatchCase:=False).Row 
    Else 
     lastrow = 1 
    End If 
    For x = 2 To lastrow 
     If .Range("L" & x) = "Completed" And .Range("V" & x) = "Completed" Then 
     .Range("W" & x) = "Completed" 
     Else: .Range("W" & x) = "Incomplete" 
     End If 
    Next 
End With 
End Sub 
+0

在你的情況下,「然後」必須在同一行的「如果」,但它應該是上線的最後一件事和部分後面的「然後「應該在一個單獨的行。如果你在「Then」之後放置了與「If」相同的行,那麼「If」是單行語句,然後「Else」和「End If」也必須位於同一行。 –

+1

請不要發佈你的代碼的圖像。它使代碼難以閱讀,防止複製/粘貼來測試或解決問題,對於帶寬有限的用戶來說這是相當粗魯的。複製您的代碼和/或任何相關的錯誤消息,並將其作爲文本粘貼到您的問題中。只有在沒有其他工作可以解釋您遇到的問題時才應使用圖片。請[編輯]包含實際的代碼。 (捕捉整個屏幕也與所提問題無關;您至少可以足夠禮貌地將它裁剪爲最小尺寸。)謝謝。 –

+0

如果應該放在.range(「W」&x)=「Incomplete」之後,則結束...不在下一個 –

回答

0

事情來改變你的代碼:

  1. 換行符Then後,還是將它備份在If
  2. 插入結束End If之前Next
  3. 上述更換End IfEnd SubEnd With
+0

我已經相應地更新了我的代碼,但它仍然顯示Else沒有錯誤。 – user3006276

+0

非常感謝,我剛剛更新了最終修正案。最後它起作用。非常感謝你的幫助。 – user3006276