2016-05-05 54 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