Elition
03-07-2008, 07:25 AM
I'm pretty sure it should be filling the array, but it's not outputting :((
Option Explicit
Const s As Long = 100
Const r As Long = 505
Dim ClassesAtt(s) As Double
Dim ClassesPass(s) As Double
Dim CreditAtt(s) As Double
Dim CreditPass(s) As Double
Dim GP(s) As Double
Dim GPA(s) As Double
Dim ID(r) As Long
Dim Credits(r) As Long
Dim Grade(r) As String
Dim m As Long
Dim u As Long
Dim t As Long
Dim j As Long
Dim e As Long
Dim GradePoints(s) As Long
Public Sub studentinfo()
'create talble headings
Range("M1") = "Student ID"
Range("N1") = "Number Classes Attempted"
Range("O1") = "Number Classes Passed"
Range("P1") = "Stundent ID"
Range("Q1") = "Number of Credits Gained"
Range("R1") = "Grade Point Average"
'clear contents
Range("m2", "r65000").ClearContents
For e = 1 To r
'read in the ID numbers
ID(r) = Range("B1").Offset(e, 0).Value
'read in the credits
Credits(r) = Range("E1").Offset(e, 0).Value
'read in the grade
Grade(r) = Range("F1").Offset(e, 0).Value
If Grade(e) = "A" Then
ClassesAtt(ID(r)) = ClassesAtt(ID(r)) + 1
ClassesPass(ID(r)) = ClassesPass(ID(r)) + 1
CreditAtt(ID(r)) = CreditAtt(ID(r)) + Credits(r)
CreditPass(ID(r)) = CreditPass(ID(r)) + Credits(r)
GP(ID(r)) = GP(ID(r)) + 4 * Credits(r)
End If
If Grade(e) = "B" Then
ClassesAtt(ID(r)) = ClassesAtt(ID(r)) + 1
ClassesPass(ID(r)) = ClassesPass(ID(r)) + 1
CreditAtt(ID(r)) = CreditAtt(ID(r)) + Credits(r)
CreditPass(ID(r)) = CreditPass(ID(r)) + Credits(r)
GP(ID(r)) = GP(ID(r)) + 3 * Credits(r)
End If
If Grade(e) = "C" Then
ClassesAtt(ID(r)) = ClassesAtt(ID(r)) + 1
ClassesPass(ID(r)) = ClassesPass(ID(r)) + 1
CreditAtt(ID(r)) = CreditAtt(ID(r)) + Credits(r)
CreditPass(ID(r)) = CreditPass(ID(r)) + Credits(r)
GP(ID(r)) = GP(ID(r)) + 2 * Credits(r)
End If
If Grade(e) = "D" Then
ClassesAtt(ID(r)) = ClassesAtt(ID(r)) + 1
ClassesPass(ID(r)) = ClassesPass(ID(r)) + 1
CreditAtt(ID(r)) = CreditAtt(ID(r)) + Credits(r)
CreditPass(ID(r)) = CreditPass(ID(r)) + Credits(r)
GP(ID(r)) = GP(ID(r)) + 1 * Credits(r)
End If
If Grade(e) = "F" Then
ClassesAtt(ID(r)) = ClassesAtt(ID(r)) + 1
ClassesPass(ID(r)) = ClassesPass(ID(r))
CreditAtt(ID(r)) = CreditAtt(ID(r)) + 1
CreditPass(ID(r)) = CreditPass(ID(r))
GP(ID(r)) = GP(ID(r))
End If
If Grade(e) = "W" Then
ClassesAtt(ID(r)) = ClassesAtt(ID(r)) + 1
ClassesPass(ID(r)) = ClassesPass(ID(r))
CreditAtt(ID(r)) = CreditAtt(ID(r)) + 1
CreditPass(ID(r)) = CreditPass(ID(r))
GP(ID(r)) = GP(ID(r))
End If
Next e
For u = 1 To s
If CreditAtt(u) = 0 Then
GPA(u) = 0
Else
GPA(u) = GradePoints(u) / CreditAtt(u)
End If
Next u
End Sub
Public Sub studentgrades()
m = 1
For t = 1 To s
If ClassesPass(t) < 3 Then
Range("M1").Offset(m, 0).Value = t
Range("N1").Offset(m, 0).Value = ClassesAtt(t)
Range("O1").Offset(m, 0).Value = ClassesPass(t)
m = m + 1
End If
Next t
m = 1
For j = 1 To s
If CreditPass(j) > 14 And GPA(j) > 3.7 Then
Range("P1").Offset(m, 0).Value = j
Range("Q1").Offset(m, 0).Value = CreditPass(j)
Range("R1").Offset(m, 0).Value = GPA(j)
m = m + 1
End If
Next j
End Sub
Option Explicit
Const s As Long = 100
Const r As Long = 505
Dim ClassesAtt(s) As Double
Dim ClassesPass(s) As Double
Dim CreditAtt(s) As Double
Dim CreditPass(s) As Double
Dim GP(s) As Double
Dim GPA(s) As Double
Dim ID(r) As Long
Dim Credits(r) As Long
Dim Grade(r) As String
Dim m As Long
Dim u As Long
Dim t As Long
Dim j As Long
Dim e As Long
Dim GradePoints(s) As Long
Public Sub studentinfo()
'create talble headings
Range("M1") = "Student ID"
Range("N1") = "Number Classes Attempted"
Range("O1") = "Number Classes Passed"
Range("P1") = "Stundent ID"
Range("Q1") = "Number of Credits Gained"
Range("R1") = "Grade Point Average"
'clear contents
Range("m2", "r65000").ClearContents
For e = 1 To r
'read in the ID numbers
ID(r) = Range("B1").Offset(e, 0).Value
'read in the credits
Credits(r) = Range("E1").Offset(e, 0).Value
'read in the grade
Grade(r) = Range("F1").Offset(e, 0).Value
If Grade(e) = "A" Then
ClassesAtt(ID(r)) = ClassesAtt(ID(r)) + 1
ClassesPass(ID(r)) = ClassesPass(ID(r)) + 1
CreditAtt(ID(r)) = CreditAtt(ID(r)) + Credits(r)
CreditPass(ID(r)) = CreditPass(ID(r)) + Credits(r)
GP(ID(r)) = GP(ID(r)) + 4 * Credits(r)
End If
If Grade(e) = "B" Then
ClassesAtt(ID(r)) = ClassesAtt(ID(r)) + 1
ClassesPass(ID(r)) = ClassesPass(ID(r)) + 1
CreditAtt(ID(r)) = CreditAtt(ID(r)) + Credits(r)
CreditPass(ID(r)) = CreditPass(ID(r)) + Credits(r)
GP(ID(r)) = GP(ID(r)) + 3 * Credits(r)
End If
If Grade(e) = "C" Then
ClassesAtt(ID(r)) = ClassesAtt(ID(r)) + 1
ClassesPass(ID(r)) = ClassesPass(ID(r)) + 1
CreditAtt(ID(r)) = CreditAtt(ID(r)) + Credits(r)
CreditPass(ID(r)) = CreditPass(ID(r)) + Credits(r)
GP(ID(r)) = GP(ID(r)) + 2 * Credits(r)
End If
If Grade(e) = "D" Then
ClassesAtt(ID(r)) = ClassesAtt(ID(r)) + 1
ClassesPass(ID(r)) = ClassesPass(ID(r)) + 1
CreditAtt(ID(r)) = CreditAtt(ID(r)) + Credits(r)
CreditPass(ID(r)) = CreditPass(ID(r)) + Credits(r)
GP(ID(r)) = GP(ID(r)) + 1 * Credits(r)
End If
If Grade(e) = "F" Then
ClassesAtt(ID(r)) = ClassesAtt(ID(r)) + 1
ClassesPass(ID(r)) = ClassesPass(ID(r))
CreditAtt(ID(r)) = CreditAtt(ID(r)) + 1
CreditPass(ID(r)) = CreditPass(ID(r))
GP(ID(r)) = GP(ID(r))
End If
If Grade(e) = "W" Then
ClassesAtt(ID(r)) = ClassesAtt(ID(r)) + 1
ClassesPass(ID(r)) = ClassesPass(ID(r))
CreditAtt(ID(r)) = CreditAtt(ID(r)) + 1
CreditPass(ID(r)) = CreditPass(ID(r))
GP(ID(r)) = GP(ID(r))
End If
Next e
For u = 1 To s
If CreditAtt(u) = 0 Then
GPA(u) = 0
Else
GPA(u) = GradePoints(u) / CreditAtt(u)
End If
Next u
End Sub
Public Sub studentgrades()
m = 1
For t = 1 To s
If ClassesPass(t) < 3 Then
Range("M1").Offset(m, 0).Value = t
Range("N1").Offset(m, 0).Value = ClassesAtt(t)
Range("O1").Offset(m, 0).Value = ClassesPass(t)
m = m + 1
End If
Next t
m = 1
For j = 1 To s
If CreditPass(j) > 14 And GPA(j) > 3.7 Then
Range("P1").Offset(m, 0).Value = j
Range("Q1").Offset(m, 0).Value = CreditPass(j)
Range("R1").Offset(m, 0).Value = GPA(j)
m = m + 1
End If
Next j
End Sub