If the data in the first post is correct tstrings like 'Todd 33 94' are only 11 characters long, trying to do a substring from position 12 within that string will be past the end of the string - exactly like the error says.
When you say the split thing doesn't work - what happens? Do you get any results or just an error.
Also you may want to try the .Net equivilent of Split
Dim Grades() As String
'Set your strStudent this way:
strStudent = strStudent.Trim()
'Then get your grades:
Grades() = strStudent.Split(" ")
'The students name is now in Grades(0),
'The first grade is in Grade(1),
'The second grade is in Grade(2),
'And if there were more grades just expand!
'For your average:
varAverage = (Convert.ToDouble(Grades(1)) + Convert.ToDouble(Grades(2))) / 2