微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用VBA无法获得月份和剩余天数中两个日期之间的差异

如何解决使用VBA无法获得月份和剩余天数中两个日期之间的差异

在Excel中的功能DateDiff,也让我们使用MD这样的属性:计算月份后的剩余天数,但无法在VBA中使用

例如

Start Date: 7/8/2020
End Date: 6/3/2021

答案应该是:10个月零26天

请告诉我使用 VBA excel 执行此操作的方法

fromDate = TextBox1.Value
Dim toDate As Date
toDate = TextBox2.Value  
diff = DateDiff("m",fromDate,toDate) – To find months
totaldays = DateDiff("d",toDate) – To find total days
projected_Date = DateAdd("m",(diff),fromDate) – Adding the month to start date
days_diff_proj = DateDiff("d",projected_Date,toDate) Finding the remaining days                  
TextBox3.Value = CStr(diff) + " Months " + CStr(days_diff_proj) + " Days "
    

解决方法

我假设 toDate 总是大于 fromDate。

您首先计算月差的尝试很好。但是,由于 VBA 进行四舍五入,您需要捕捉计算的月数过大的情况 - 在这种情况下,通过将月数减少 1 来进行计算。

Dim month_diff_proj As Long
month_diff_proj = DateDiff("m",fromDate,toDate)

Dim projected_Date As Date,days_diff_proj As Long
projected_Date = DateAdd("m",month_diff_proj,fromDate)

If projected_Date > toDate Then
    month_diff_proj = month_diff_proj - 1    ' reduce by 1 month 
    projected_Date = DateAdd("m",fromDate)
End If
days_diff_proj = DateDiff("d",projected_Date,toDate)

Debug.Print month_diff_proj,days_diff_proj

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。