2016-05-05 55 views
0

當我將此宏分配給一個按鈕並運行它時,沒有任何事情發生,沒有錯誤,沒有任何事情發生。我不明白爲什麼沒有發生。它應該查看單元格C4,並根據得分使用分數來爲單元格D4和E4分配字母等級和「通過」或「失敗」。簡單Select Case VBA代碼不運行

Sub Grade() 
    Dim x As Range 
    Dim y As Range 
    Dim z As Range 
    Dim w As Integer 

    Set x = Worksheets("Grades").Range("C4") 
    Set y = Worksheets("Grades").Range("D4") 
    Set z = Worksheets("Grades").Range("E4") 
    w = x.Value 

    Select Case w 
    Case 0 - 50 
     y.Value = "F" 
     z.Value = "Fail" 
    Case 51 - 59 
     y.Value = "D" 
     z.Value = "Fail" 
    Case 60 - 65 
     y.Value = "D" 
     z.Value = "Pass" 
    Case 66 - 75 
     y.Value = "C" 
     z.Value = "Pass" 
    Case 76 - 90 
     y.Value = "B" 
     z.Value = "Pass" 
    Case 91 - 100 
     y.Value = "A" 
     z.Value = "Pass" 
    End Select 
End Sub 
+1

您所有的號碼範圍都需要像這樣'Case 0 to 50' –

+0

步驟1:在開始時輸入'call msgbox(「Hi」)'確認代碼實際被調用。 –

+0

非常感謝你,現在完美! –

回答

4

您所有的號碼範圍必須是這樣Case 0 to 50

隨着您有Excel試圖做數學的方式。

因此,第一個Case正在尋找w來等於-50,因爲0-50=-50

第二個是尋找w等於-8,因爲51-59=-8

+0

我在可能的簡歷問題上得到了一個答案downvote,但問題是有效的(可怕的標題壽)。任何具有CV權限的人都應該可以編輯Q標題。如何編寫一個選擇案例的錯誤是未來用戶的一個有效點。 – Chrismas007

+0

@ Chrismas007 CV是什麼?很多時候,我被告知將我的意見轉換爲答案。我是否應該將此留作評論? –

+2

簡歷是關閉投票。我正在和那些低估你答案的人說話。 – Chrismas007