以下程序代码有什么问题,为什么不返回正确的结果? 每当我在单元格(1,1)中放入任何数字并运行程序时,数字会自动更改,也不会在单元格(1,2)中抛出正确的结果。
Private Sub Sheet2_1()
Dim num1 As Integer
Dim grade As String
Randomize Timer
num1 = Int(Rnd * 100)
Cells(1, 1).Value = num1
If num1 >= 50 Then
grade = "B"
Cells(1, 2).Value = grade
ElseIf num1 <= 100 And num1 > 50 Then
grade = "A"
Cells(1, 2).Value = grade
Else
grade = "Check"
Cells(1, 2).Value = grade
End If
End Sub
答案 0 :(得分:0)
你的第二个ElseIf
陈述永远不会成真。
首先,检查num1
是否大于或等于50
:
If num1 >= 50 Then
grade = "B"
Cells(1, 2).Value = grade
想象一下如果num1
等于49
,则下一个ElseIf
将被执行。这会检查num1
是否小于或等于100
,但您确定总是如此,因为如果它大于100
,则第一个If
会已被执行。
接下来就是检查num1
是否大于50
。好吧,你知道这不是因为这已经在第一个If
声明中检查过了。
我认为这就是你想要的:
Private Sub Sheet2_1()
Dim num1 As Integer
Dim grade As String
Randomize Timer
num1 = Int(Rnd * 100)
Cells(1, 1).Value = num1
If num1 <= 50 Then
grade = "B"
Cells(1, 2).Value = grade
ElseIf num1 > 50 And num1 <= 100 Then
grade = "A"
Cells(1, 2).Value = grade
Else
grade = "Check"
Cells(1, 2).Value = grade
End If
End Sub