使用VBA在单元格中添加一天
我有一个macros设置,将清除电子表格上的内容。 在这个macros的末尾,我想select已经有date的特定单元格,然后用当前date+1replace当前date。 在networkingsearch后,我发现了DateAdd函数,但是对于VBA来说我还是个新手,而且我很难正确地编写函数。 选好必要的细胞之后,我会如何改变date到第二天?
从字面上理解你的问题,你可以这样做:
' Here goes the code where you select the date cells you want to increment ' ... ' Now increment them by 1 day: Dim cell As Range For Each cell In Selection cell.Value = cell.Value + 1 ' adds 1 day Next cell
date数据types的单位是一天。 所以添加1增加了一天。
这里有一个如何使用DateAdd的例子:
Range("A1").value = DateAdd("d", 1, CDate(Range("A1")))
这当然,假定有效date在A1。 它会把这个date增加一天。
“d”表示我们正在添加一天。 以下是添加年份,月份等的其他时间间隔
yyyy – 年
q – 季度
米 – 月
y – 一年中的一天
d – 日
w – 平日
周 – 周
h – 小时
n – 分钟
秒 – 秒
注意我使用CDate。 这只是将范围(“a1”)的值转换为date。 如果A1不能被parsing为date,它会抛出一个错误。
当然,你也可以用这个方法来减去天数:
Range("A1").value = DateAdd("d", -3, CDate(Range("A1")))
这会在A1中减去三天的date。
如果你在单元格a1中有date并且想要增加一天,那么它应该和
range("a1").value = range("a1").value + 1