2017-05-26 216 views
0

我想從給定的出生日期計算年齡。我的問題是我的代碼產生了不準確的結果,因爲閏年​​不包括在我的等式中。我如何解決這個問題?Excel VBA:計算已過閏年的年齡

Dim bday As String 
bday = UserForm.Birthdate.Value 
UserForm.Age.Value = (Date - DateValue(bday))/365 
+0

使用擅長內置功能計算差異 - 閏年將在計算過程中考慮。 (BirthDate,TODAY(),「y」)&「years」&DATEDIF(BirthDate,TODAY(),「ym」)&「months」&DATEDIF(BirthDate,TODAY(),「md」)&「days 「(來自http://www.cpearson.com/excel/datedif.aspx)。 –

+0

VBA版本可用:http://www.cpearson.com/excel/DateTimeVBA.htm –

+0

有趣的是,DateDif公式在VBA中沒有WorksheetFunction,因此如果您必須使用VBA而不是Excel公式,則應使用自定義VBA代碼 –

回答

0

對於你的情況,我會用擅長的功能DateDiff,返回兩個日期

的區別

你會以這種方式來使用它:

UserForm.Age.Value = DateDiff("yyyy", date, datevalue(bday))

+0

結果關閉了一年。 –

+0

@HydesYase什麼是您的輸入,實際輸出和所需的輸出。請閱讀[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve) –

+0

輸入是生日。實際輸出是計算的年齡,但是不準確,因爲閏年​​未包含在計算中。我期望的輸出是計算中包含閏年的準確結果。 –