Microsoft word VBA过期日期

Microsoft word VBA过期日期,vba,ms-word,Vba,Ms Word,希望更改此Microsoft Word VBA代码,使到期日期始终为每周的每个星期一,而不是特定日期: Sub MyMacro() ExpirationDate = #6/1/2013# If Now() < ExpirationDate Then 'Rest of macro goes here End if End Sub Sub MyMacro() 到期日期=#2013年1月6日# 如果Now()

希望更改此Microsoft Word VBA代码,使到期日期始终为每周的每个星期一,而不是特定日期:

Sub MyMacro()

ExpirationDate = #6/1/2013#
If Now() < ExpirationDate Then

    'Rest of macro goes here

End if
End Sub
Sub MyMacro()
到期日期=#2013年1月6日#
如果Now()
任何关于如何做到这一点的想法都很好:)

过期日期=(日期+7)-(工作日(日期)-工作日(星期一))

此公式将始终返回“+7”指定的下周一的日期 您不需要声明变量
Expirationdate

如果日期<(日期+7)-(工作日(日期)-工作日(星期一)),则
我会做好的

请注意,
Now
返回日期/时间值,而
date
返回日期整数。如果时间很重要,你就必须把它加进去。向上述公式中添加0.5,以确定下周一中午12点的到期时间。

到期日期=(日期+7)-(工作日(日期)-工作日(星期一))

此公式将始终返回“+7”指定的下周一的日期 您不需要声明变量
Expirationdate

如果日期<(日期+7)-(工作日(日期)-工作日(星期一)),则
我会做好的


请注意,
Now
返回日期/时间值,而
date
返回日期整数。如果时间很重要,你就必须把它加进去。将0.5添加到上述公式中,以确定下周一中午12点的到期时间。

我通常使用此函数:

Public Function PreviousMonday(CurrentDate As Date) As Date
    PreviousMonday = CurrentDate - Weekday(CurrentDate - 2)
End Function
然后您可以将其称为:
上一个星期一(Date())
-如果今天(28日)输入,将返回2017年7月24日。
上周一(CDATE(“2017年7月1日”)
-将返回2017年6月26日

前一个星期一(42430)
将返回2016年2月29日(42430=2016年3月1日)。

我通常使用此函数:

Public Function PreviousMonday(CurrentDate As Date) As Date
    PreviousMonday = CurrentDate - Weekday(CurrentDate - 2)
End Function
然后您可以将其称为:
上一个星期一(Date())
-如果今天(28日)输入,将返回2017年7月24日。
上周一(CDATE(“2017年7月1日”)
-将返回2017年6月26日

上周一(42430)
将返回2016年2月29日(42430=2016年3月1日)。

这非常有效。如果我也需要它在特定时间运行呢?我很好奇这是否可能,谢谢你的反馈。您可以通过检查时间来展开if语句,如本文所示:。如果要在特定时间启动宏,请看:这非常有效。如果我也需要它在特定时间运行呢?我很好奇这是否可能,谢谢你的反馈。您可以通过检查时间来展开if语句,如本文所示:。如果要在特定时间启动宏,请查看:
Public Function PreviousMonday(CurrentDate As Date) As Date
    PreviousMonday = CurrentDate - Weekday(CurrentDate - 2)
End Function