Thought I might as well throw my version in here too. It is a bit of a brute force approach and has the caveat that if the person is less than 2 the age is reported in months.
Function age(DOB As Double) As Variant
' Given a birthday calculates the persons age.
' If person is less than 2 years old gives the age in months.
Dim CurDate As Double
Dim Years As Integer, Months As Integer
Dim M2 As Integer, M1 As Integer
Dim D2 As Integer, D1 As Integer
CurDate = Now
' Subtract the year part between the two dates
Years = DateDiff("yyyy", DOB, CurDate)
' Now fix up the age by checking if we had a birthday this year yet
M2 = DatePart("m", CurDate)
M1 = DatePart("m", DOB)
D2 = DatePart("d", CurDate)
D1 = DatePart("d", DOB)
If M2 < M1 Then Years = Years - 1
If M2 = M1 And D2 < D1 Then Years = Years - 1
If Years < 2 Then
Months = DateDiff("m", DOB, CurDate)
If D2 < D1 Then Months = Months - 1
age = Months & "M"
Else
age = Years
End If
End Function