打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA基础入门(37)如何给yymmdd这样的日期做加减?

对于yymmdd这样的日期,在加减处理上,和数值的加减,普通的日期加减有一些不一样。

注:文中代码部分可以左右滑动

例如,190131,再加上1天,并不是190132,而是190201。那么如何把单元格C3变换后的值写到C4里面呢?

第一种方案:

我们看看下面的代码:

Sub Test01()  Dim Mydate As String  Mydate = Range("C3")  Range("C4") = Mydate + 1End Sub

我们看看下面的结果:

显然,这样不行,这样是按照数值进行了加算,结果并不是我们想要的。那我们是不是把Mydate定义成Date类型就可以了呢?

第二种方案:

我们看看下面的代码:

Sub Test02()  Dim Mydate As Date  Mydate = Range("C3")  Range("C4") = Mydate + 1End Sub

        我们看看下面的结果:

显然,这样也不行,定义成了Date类型为什么还不行呢?

原因是,如果把Mydate定义成了Date类型,那么在上面代码第三行的赋值运算过程中,就相当于把190131强制转换成了Date类型,而转换的结果就是2420年的7月23日。

第三种方案:

我们看看下面的代码:

Sub Test03()  Dim Mydate As Date  Mydate = Left(Range("C3"), 2) & "/" & Mid(Range("C3"), 3, 2) & "/" & Right(Range("C3"), 2)  Range("C4") = Format(Mydate + 1, "YYMMDD")End Sub

我们看看下面的结果:

其实,最根本的原因是取得的变换前数据(单元格C3)中的数据格式并不是日期类型,而是默认的常规类型,所以我们在对数据进行处理的时候会产生问题,代码第二行就是把数据中间加上“ / ”,把数据变成19/01/31后再进行处理,这么做就可以避免了方案二那种把190131转换成2420/07/23的问题了。

如果格式本身就是日期了,那么直接➕1就好了,免去了上面所出现的问题。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
值得收藏的VBA编程常用代码
Excel VBA编程的常用代码
自动计算位次的代码
用VBA计算两个日期之间的工作日(去掉周末两天)
田源内训:零基础学VBA——第二个VBA实例
VBA代码解决方案:VBA代码中,EXCEL工作表函数SUM的利用方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服