2017-05-26 39 views
0

に合格したうるう年と。私の問題は、私のコードが不正確な結果を生成することです。なぜなら、うるう年は私の方程式に含まれていないからです。それをどうすれば解決できますか?あなたのケースではエクセルVBA:計算年齢、私は与えられた誕生日から年齢を計算したい

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

使用を建て優れ差を計算する - うるう年は、計算中に考慮されます。 '= DATEDIF(誕生日、TODAY()、 "Y")&」年 "&DATEDIF(誕生日、TODAY()、" YM ")&" ヶ月 "&DATEDIF(誕生日、TODAY()、" MD ")&" 日"(http://www.cpearson.com/excel/datedif.aspxから)。 –

+0

VBAのバージョンが用意されていますhttp://www.cpearson.com/excel/DateTimeVBA.htm –

+0

興味深いことにDATEDIFフォーミュラあなたではなく、Excelの数式 –

答えて

0

私はあなたがこの方法でそれを使用する二つの日付

間の差を返すために、優れて機能DateDiffを使用します。のために機能して

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

+0

結果は1年後に消えます。 –

+0

@HydesYase入力、実際の出力、および希望する出力は何ですか?お読みください[、最小完全、かつ検証例を作成する方法](http://stackoverflow.com/help/mcve) –

+0

入力が誕生日です。実際の出力は計算された年齢ですが、計算に閏年が含まれていないため不正確です。私の希望する出力は、うるう年が計算に含まれている正確な結果です。 –

関連する問題