Excel 从文本框dob计算年龄

Excel 从文本框dob计算年龄,excel,vba,Excel,Vba,“我的userform包含两个文本框TextBox1属于出生日期,textbox2属于年龄。在TextBox1中输入出生日期,然后在textbox2中显示完整的年龄和月份时,如何创建代码?” 我期望输出,例如25.10,但实际输出25DateDiff函数以多种格式提供两个日期之间的差异。使用Date Diff函数,我们可以获得日期之间的月数,并将其转换为如下所示的所需格式 Dim Age Dim Birthday As Date Dim years As Integer Dim months A

“我的userform包含两个文本框TextBox1属于出生日期,textbox2属于年龄。在TextBox1中输入出生日期,然后在textbox2中显示完整的年龄和月份时,如何创建代码?”


我期望输出,例如25.10,但实际输出25

DateDiff函数以多种格式提供两个日期之间的差异。使用Date Diff函数,我们可以获得日期之间的月数,并将其转换为如下所示的所需格式

Dim Age
Dim Birthday As Date
Dim years As Integer
Dim months As Integer
Birthday = CDate(TextBox1.Text)
Age = DateDiff("m", (Birthday) , (Date) )
years = Application.WorksheetFunction.RoundDown(Age / 12, 0)
months = Age Mod 12

你为什么期望25.10分?减去两个整数(年份值)将始终返回一个整数25.10表示年龄25岁10个月。如果还有其他代码,请解释一下,在计算年龄时,您需要考虑月份。``Private Sub TextDOB_AfterUpdate()Dim Age Dim birth As Date Dim years As Integer Dim Months As Integer birth=CDate(TextDOB.Text)Age=DateDiff(“m”,“Date”,“birth”)years=Application.WorksheetFunction.RoundDown(Age/12,0)months=Age Mod 12 Textage.Value=years&“&months``textage值为负数,如-25.-10参数可能必须在datediff函数中交换。更新了@Yogesh上面的我的答案
Dim Age
Dim Birthday As Date
Dim years As Integer
Dim months As Integer
Birthday = CDate(TextBox1.Text)
Age = DateDiff("m", (Birthday) , (Date) )
years = Application.WorksheetFunction.RoundDown(Age / 12, 0)
months = Age Mod 12