【发布时间】:2017-04-24 14:33:30
【问题描述】:
我有一个脚本,除其他外,它加载具有与日期相对应的可变文件名的文件。它可以加载过去 7 天内的日期,但是,我需要它加载过去 7 天内的日期。
脚本将在周五早上运行,我需要它来拉动整个星期,再加上整个前一周。目前,它将上周五(7天前)拉到前一天(周四)。
我需要的是正确的代码来让它从上周一到上周四拉。
上周一拉取的代码如下。我尝试将 Date - 1 更改为 Date - 2,但这是不对的。我知道 vbMonday 应该对应于过去 7 天内的某个日期(如果我理解正确的话。可能我错过了一件简单的事情,但似乎没有任何选项有效。
(仅供参考,所有变量都已声明,只是省略了以便更容易看到发生了什么)
LastMondayDate = Format(Date - (Weekday(Date - 1, vbMonday)), "m.d.yy")
fullFileNameLastMonday = strFilePath & LastMondayDate & ".xls"
If Dir(fullFileNameLastMonday) = "" Then
MsgBox "File for last Monday doesn't exist!"
GoTo ExitLastMonday
End If
Set wbkLastMonday = Workbooks.Open(fullFileNameLastMonday, False, True)
.......Do stuff.......
wbkLastMonday.Close SaveChanges:=False
退出上周一:
【问题讨论】:
-
所以周五和上周一的差是 11 天,对吗?你可以使用
Format(DateAdd("d",-11,Date),"m.d.yy")。 -
DateDiff 也是一个非常有用的功能。
-
Kyle,我唯一关心的设置确切数字是如果我出于某种原因在不同的日子运行(例如今天测试它),那么 11 天前当然不是星期一。
-
为什么不在 Weekday(Now()) 使用选择案例并根据今天的情况进行日期计算?每次遇到新场景时都必须重写代码,更加动态和 cricuvents
-
Doug,所以我确定我理解正确,你能举个例子吗?