我有一个宏设置,可以清除电子表格中的内容.在此宏的末尾,我想选择已包含日期的特定单元格,然后将当前日期替换为当前日期+1.在搜索网页后,我找到了DateAdd功能,但我对VBA很新,我在编写正确的功能时遇到了困难.选择必要的单元格后,如何将日期更改为第二天?
从字面上看你的问题,你可以这样做:
' 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
Run Code Online (Sandbox Code Playgroud)
Date数据类型的单位是一天.所以添加1会增加一天.
以下是如何使用 DateAdd 的示例:
Range("A1").value = DateAdd("d", 1, CDate(Range("A1")))
Run Code Online (Sandbox Code Playgroud)
当然,这假定有效日期在 A1 中。它将将该日期增加一天。
“d”表示我们增加了一天。以下是添加年、月等的其他时间间隔。
yyyy - 年
q - 季度
米 - 月
y - 一年中的第几天
d - 天
w - 工作日
ww - 周
h - 小时
n - 分钟
s - 第二
注意我使用 CDate。这只是将 range("a1") 的值转换为日期。如果无法将 A1 解析为日期,则会引发错误。
当然,你也可以用这个方法减去天数:
Range("A1").value = DateAdd("d", -3, CDate(Range("A1")))
Run Code Online (Sandbox Code Playgroud)
这将 A1 中的日期减去三天。