使用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