【发布时间】:2022-01-09 23:42:03
【问题描述】:
我设置了一个宏,可以清除电子表格上的内容。在这个宏的末尾,我想选择已经有日期的特定单元格,然后用当前日期 +1 替换当前日期。在网上搜索后,我找到了 DateAdd 函数,但我对 VBA 很陌生,我很难正确编写函数。选择必要的单元格后,我将如何将日期更改为第二天?
【问题讨论】:
我设置了一个宏,可以清除电子表格上的内容。在这个宏的末尾,我想选择已经有日期的特定单元格,然后用当前日期 +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
Date 数据类型的单位是天。所以加 1 加 1 天。
【讨论】:
以下是如何使用 DateAdd 的示例:
Range("A1").value = DateAdd("d", 1, CDate(Range("A1")))
当然,这假设有效日期在 A1 中。它会将该日期增加一天。
“d”表示我们正在添加一天。以下是添加年、月等的其他间隔。
yyyy - 年
q - 季度
m - 月
y - 一年中的哪一天
d - 天
w - 工作日
ww - 周
h - 小时
n - 分钟
s - 秒
请注意,我使用的是 CDate。这只是将 range("a1") 的值转换为日期。如果不能将 A1 解析为日期,则会抛出错误。
当然,你也可以用这个方法减去天数:
Range("A1").value = DateAdd("d", -3, CDate(Range("A1")))
A1 中的日期减去三天。
【讨论】:
如果你在单元格 a1 中有日期并且想要增加一天,它应该很简单
range("a1").value = range("a1").value + 1
【讨论】: