Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2355|回复: 3

[已解决]日期计算

[复制链接]
发表于 2017-5-21 09:34 | 显示全部楼层 |阅读模式
比如,我在b2单元格中输入日期格式,2013/3/1,C2单元格输入数值20,想D2单元格中得到2013/3/1过后20个月的日子,该怎么用VBA程序表示,请指教
最佳答案
2017-5-21 16:21
本帖最后由 france723 于 2017-5-21 16:23 编辑


代码如下。
  1. Sub aaa()
  2. Dim y, ar
  3. y = Range("b1048576").End(3).Row '
  4. ar = Range("b1:d" & y)
  5. For i = 2 To UBound(ar)
  6.     ar(i, 3) = ar(i, 1) + ar(i, 2)
  7. Next i
  8. Range("b1").Resize(UBound(ar), 3) = ar
  9. End Sub
复制代码



excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-5-21 10:12 | 显示全部楼层
在表格用函数 直接写了
d2
=date(year(b2),month(b2)+c2,day(b2))
回复

使用道具 举报

 楼主| 发表于 2017-5-21 10:50 | 显示全部楼层
砂海 发表于 2017-5-21 10:12
在表格用函数 直接写了
d2
=date(year(b2),month(b2)+c2,day(b2))

主要是处理数据量太大,100W条,想用宏来写,这样就跟其他数据统一处理了
回复

使用道具 举报

发表于 2017-5-21 16:21 | 显示全部楼层    本楼为最佳答案   
本帖最后由 france723 于 2017-5-21 16:23 编辑


代码如下。
  1. Sub aaa()
  2. Dim y, ar
  3. y = Range("b1048576").End(3).Row '
  4. ar = Range("b1:d" & y)
  5. For i = 2 To UBound(ar)
  6.     ar(i, 3) = ar(i, 1) + ar(i, 2)
  7. Next i
  8. Range("b1").Resize(UBound(ar), 3) = ar
  9. End Sub
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 12:58 , Processed in 0.283990 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表