如何基于UserForm文本框输入的日期计算指定间隔的目标日期
问题修复方案
你当前的实现用固定1825天计算5年时长,没有覆盖闰年场景,会出现日期计算偏差,且没有对输入的日期做合法性校验,遇到非日期格式输入时会触发运行错误。
推荐使用VBA内置的DateAdd函数实现日期按年偏移,会自动处理闰年、大小月等特殊场景,修改后的代码如下:
Private Sub TextBox1_AfterUpdate() ' 校验输入是否为合法日期格式 If IsDate(TextBox1.Value) Then ' DateAdd按年偏移5年,按指定格式输出 TextBox2.Value = Format(DateAdd("yyyy", 5, CDate(TextBox1.Value)), "DD/MM/YYYY") Else ' 输入非法时清空结果并提示 TextBox2.Value = "" MsgBox "请输入合法的日期内容" End If End Sub
如果需要计算距今5年前的日期,只需要把DateAdd的第二个参数从5改成-5即可。
内容的提问来源于stack exchange,提问作者Harin
相关产品推荐
相关产品推荐

