【发布时间】:2018-01-25 07:27:04
【问题描述】:
我是 VBA 的初学者,我需要编写一个列,其中我必须从当前日期起 7 天取消勾选。我一直在使用用户 LR42 的这段代码
selMonth = Format(DateSerial(Year(Date), Month(Date), Day(Date) - 7), _
"m/d/yyyy")
With Sheet1 '/* change to your actual sheet */
'/* reference last row to column A */
lr = .Range("A" & .Rows.Count).End(xlUp).Row
Set myRange = .Range("A1:AY" & lr)
myRange.AutoFilter 1, "<=" & selMonth
它确实从我的数据中取消了 7 天。但是,有时问题是,数据看起来像这样:
Jan 16
Jan 17
Jan 18
Jan 19
Jan 20
**no Jan 21**
Jan 22
**no Jan 23**
Jan 24
今天的日期是 1 月 24 日。当前日期 - 7 天是 1 月 18 日。我希望代码取消勾选 7 天(包括当前日期),同时考虑到这些日期中可能缺少日期这一事实。如果我要手动取消勾选它,我会在 1 月 16 日之前取消勾选。但是,根据上面的数据,代码只会在 1 月 18 日之前取消勾选(同时跳过没有 1 月 23 日和 21 日的事实) .
我应该如何对其进行编码,以使代码还考虑到这 7 天内可能缺少日期这一事实?
【问题讨论】:
-
您的意思是取消最后 7 个数据点的勾选(您的示例中的所有内容)?因此,如果还有 1 月 15 日,那么除了 1 月 15 日之外的所有内容都会取消勾选?
-
可以重复日期吗?如果没有,您可以按日期排序并偏移 -7 以获得用于您的条件的日期。
-
是的!取消勾选最后 7 个数据点。更正了当前日期(应为 1 月 24 日)。是的,除了 1 月 15 日(考虑到有空白日期)之外,所有内容都不会勾选。不,不会有任何重复的日期。你怎么编码?我是 VBA 的初学者,很遗憾
-
今天的日期会出现吗?如果是这样,你会取消今天的日期吗?
-
是的,如果我使用从 1 月 25 日提取的数据,我也会取消勾选今天的日期(1 月 25 日)直到 1 月 19 日。上面的示例是昨天提取的数据。