在Excel的函数中我们有if函数,给定一个条件,如果正确则如何,否则如何。如图,我们对学生的某科成绩判断及格或不及格。
当成绩大于等于60,则为及格,否则不及格。之后再把公式下拉填充即可完成对所有学生的成绩判定。
如何能通过VBA代码来对学生成绩进行一次性判定?
1. 首先还是来到VBA的编程环境,点击“开发工具”> “Visual Basic”> 添加一个新的模块。
2. 添加或手动写一个新的过程。
Sub 成绩判定()
End Sub
3. 添加if逻辑判断,如果F2单元格的成绩大于等于60,则G2单元格输入“及格”。
Sub 成绩判定()
If Range("F2") >= 60 Then
Range("G2") = "及格"
End If
End Sub
4. 以上只是针对一个单元格进行判断,如果要对所有学进行判断,则要用到的for循环(参考文章)。
Sub 成绩判定()
Dim i As Integer
For i = 2 To 17
If Range("F" & i) >= 60 Then
Range("G" & i) = "及格"
End If
Next
End Sub
5. 执行上面的代码,我们可以看到会自动为学生成绩进行判定。
6. 但是我们会发现不完整,有一些并未进行判断,是因为我们在Excel中if函数可以直接写出来,如果不正确的情况,则如何。因此,在VBA中,需要加上else,也就是“否则如何”。
Sub 成绩判定()
Dim i As Integer
For i = 2 To 17
If Range("F" & i) >= 60 Then
Range("G" & i) = "及格"
Else
Range("G" & i) = "不及格"
End If
Next
End Sub
7. 最后再次执行后,则会对所有学生的成绩进行及格或不及格的判断。