Quote Originally Posted by Comintern
It looks like you're using the wrong index for 'grade'.
Actually, I think using row in grade() is fine, since grade is defined as:
Code:
Dim grade(5) As String
And col only goes from 0 to 2.

The problem comes when the OP goes to "calculate the letter grade". At that point, it should be changed to:
Code:
            If (ave(row) > 90 And ave(row) <= 100) Then grade(row) = "A" Else
            If (ave(row) > 80 And ave(row) < 90) Then grade(row) = "B" Else
            If (ave(row) > 70 And ave(row) < 80) Then grade(row) = "C" Else
            If (ave(row) > 60 And ave(row) < 70) Then grade(row) = "D" Else
            If ave(row) < 60 Then grade(row) = "F"
@smcoh326
Doing the comparison checks as you did:
Code:
ave(row) > 90 <= 100
Returns True, though I don't know why. That caused it to set the value incorrectly each time.

I didn't know you could do If/Then/Else like that, though.