学生が 1 年目、2 年目、または 3 年目にあるかどうか、または a) 勉強している証明書と b) 開始した日付に基づいて卒業したかどうかを判断できる関数が必要です。
これが私の最初の試みです - どんなフィードバックでも大歓迎です:
[編集: 問題は、関数を Excel で使用するとエラーが返されることです]
[編集 2: DateDiff セクションの m を "m" に変更すると、エラーが解消されました。現在、2 年生と 3 年生が「過去」とラベル付けされているという問題があります]
Function YearCalc(start, course)
'Introduce length - the course length in years
Dim length As Integer
'Define length corresponding to specific courses
If course = "Msc" Then
length = 3
ElseIf course = "Adv Dip" Then
length = 2
ElseIf course = "PG Cert" Then
length = 1
End If
Dim lengthm As Integer
lengthm = (length * 12)
'Define diff as the month difference between two dates;
'today's date and the date the course was started.
diff = DateDiff("m", start, Date, vbMonday)
'Compare the date difference to the length of the course,
'such that if the difference is larger than length of the specific course
'the student is marked as 'Past':
If diff >= (lengthm) Then
YearCalc = "Past"
'If the difference is less than the length of the course, determine which
'year they fall into:
Else
If 0 <= (diff - lengthm) < 1 Then
YearCalc = 1
ElseIf 1 <= (diff - lengthm) < 2 Then
YearCalc = 2
ElseIf 2 <= (diff - lengthm) < 3 Then
YearCalc = 3
End If
End If
End Function