kpku2020
New Member
Hi,
I am trying to create a UDF for calculating grades. Everything works fine if I hard code the values(marks obtained and grades e.g. 4.5, "A+") in VBA code.
Problem is when I replace the hardcoded value with cell reference. I think I am not referencing the cells right or the data type used is not correct. I get #Value error or the results are incorrect.
In Marks Obtained I can have number from 0 to 5 including fractions like 1.5, 2.77, 3.75
Code is:
I am trying to create a UDF for calculating grades. Everything works fine if I hard code the values(marks obtained and grades e.g. 4.5, "A+") in VBA code.
Problem is when I replace the hardcoded value with cell reference. I think I am not referencing the cells right or the data type used is not correct. I get #Value error or the results are incorrect.
In Marks Obtained I can have number from 0 to 5 including fractions like 1.5, 2.77, 3.75
Code is:
Code:
Public Function TGrade(MarksObtained As Double) As String
' THIS WORKS
Select Case MarksObtained
Case Is > 4.45
TGrade = Sheets("Settings").Range("Z3").Value
Case Is > 3.7
TGrade = Sheets("Settings").Range("Z4").Value
Case Is > 2.75
TGrade = Sheets("Settings").Range("Z5").Value
Case Is > 1.75
TGrade = Sheets("Settings").Range("Z6").Value
Case Else
TGrade = Sheets("Settings").Range("Z7").Value
End Select
'THIS DOESNT WORK
' Select Case MarksObtained
'
' Case Is >= Sheets("Settings").Range("P4").Value
'
' TGrade = Sheets("Settings").Range("Z3").Value
'
' Case Is >= Sheets("Settings").Range("P5").Value
'
' TGrade = Sheets("Settings").Range("Z4").Value
'
' Case Is >= Sheets("Settings").Range("P6").Value
'
' TGrade = Sheets("Settings").Range("Z5").Value
'
' Case Is >= Sheets("Settings").Range("P7").Value
'
' TGrade = Sheets("Settings").Range("Z6").Value
'
' Case Else
'
' TGrade = Sheets("Settings").Range("Z7").Value
'
' End Select
End Function