我想從給定的出生日期計算年齡。我的問題是我的代碼產生了不準確的結果,因爲閏年不包括在我的等式中。我如何解決這個問題?Excel VBA:計算已過閏年的年齡
Dim bday As String
bday = UserForm.Birthdate.Value
UserForm.Age.Value = (Date - DateValue(bday))/365
我想從給定的出生日期計算年齡。我的問題是我的代碼產生了不準確的結果,因爲閏年不包括在我的等式中。我如何解決這個問題?Excel VBA:計算已過閏年的年齡
Dim bday As String
bday = UserForm.Birthdate.Value
UserForm.Age.Value = (Date - DateValue(bday))/365
對於你的情況,我會用擅長的功能DateDiff,返回兩個日期
的區別你會以這種方式來使用它:
UserForm.Age.Value = DateDiff("yyyy", date, datevalue(bday))
結果關閉了一年。 –
@HydesYase什麼是您的輸入,實際輸出和所需的輸出。請閱讀[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve) –
輸入是生日。實際輸出是計算的年齡,但是不準確,因爲閏年未包含在計算中。我期望的輸出是計算中包含閏年的準確結果。 –
使用擅長內置功能計算差異 - 閏年將在計算過程中考慮。 (BirthDate,TODAY(),「y」)&「years」&DATEDIF(BirthDate,TODAY(),「ym」)&「months」&DATEDIF(BirthDate,TODAY(),「md」)&「days 「(來自http://www.cpearson.com/excel/datedif.aspx)。 –
VBA版本可用:http://www.cpearson.com/excel/DateTimeVBA.htm –
有趣的是,DateDif公式在VBA中沒有WorksheetFunction,因此如果您必須使用VBA而不是Excel公式,則應使用自定義VBA代碼 –