(Resposta editada de 8/21:)
Para fazer no VBA, insira este código em uma macro. A chave é o método .filldown.
Isso pressupõe que a última linha na sua planilha pode ser encontrada na coluna B, e não há lacunas na B. Ela também assume que a segunda linha está em branco para separar o cabeçalho do restante dos dados como mostrado acima .
'last_row is based on the last name in column B, ignoring the first 2 rows,
'and will be the point at which this macro stops as it works from the top
'down.
'next_row is a look-ahead to see what row needs to be acted on next, as
'the macro progresses, so fills in student IDs in the appropriate spaces
Dim last_row As Long, next_row As Long
last_row = ActiveSheet.Range("B3").End(xlDown).Row
'student_id is the student ID, starting at 90000000
Dim student_id As Long
student_id = 90000000
Cells(3, 1).Select 'starting point in column A, ignoring the first 2 rows
'the meat & potatoes
Do While Selection.Row < last_row
'if there is a space after the current row, fill in student_id
If Selection.Row <> Selection.End(xlDown).Row - 1 Then
'find the next row to advance to before changing anything
next_row = Selection.End(xlDown).Row
'put in the student ID >= 90000000 in the space after the
'current row
Selection.Offset(1).Value = student_id
'fill in that student ID in all blank space(s)
Range(Selection.Offset(1), Selection.End(xlDown).Offset(-1)).FillDown
'add 1 to the student ID
student_id = student_id + 1
Cells(next_row, 1).Select
Else
'if no space after current row, progress 1 row
Selection.Offset(1).Select
End If
Loop