使用VBA在单元格中添加一天

时间:2011-11-16 17:50:33

标签: excel vba

我有一个宏设置,可以清除电子表格中的内容。在此宏的末尾,我想选择已包含日期的特定单元格,然后将当前日期替换为当前日期+1。在搜索网页后,我找到了DateAdd功能,但我对VBA很新,我在编写正确的功能时遇到了困难。选择必要的单元格后,如何将日期更改为第二天?

3 个答案:

答案 0 :(得分:5)

从字面上理解你的问题,你可以这样做:

' 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

日期数据类型的单位是一天。所以添加1会增加一天。

答案 1 :(得分:3)

以下是如何使用DateAdd的示例:

Range("A1").value = DateAdd("d", 1, CDate(Range("A1")))

当然,这假设有效日期在A1。它会将该日期增加一天。

“d”表示我们正在添加一天。以下是添加年,月等的其他间隔。

yyyy - 年

q - 季度

m - 月

y - 一年中的某一天

d - Day

w - 工作日

ww - 周

h - 小时

n - 分钟

s - 秒

注意我使用CDate。这只是将范围(“a1”)的值转换为日期。如果A1无法解析为日期,则会抛出错误。

当然,您也可以使用此方法减去天数:

Range("A1").value = DateAdd("d", -3, CDate(Range("A1")))

这减去了A1中日期的三天。

答案 2 :(得分:1)

如果您在单元格a1中有日期并希望增加一天,那么它应该像

一样简单

range("a1").value = range("a1").value + 1