【发布时间】:2021-10-23 02:19:30
【问题描述】:
我想弄清楚如何获得一个月的第一个星期一。我有以下代码可以给我每月的第一个星期一,但我需要确定第一个星期一是否在上个月内。如果该月的第一天是星期一到星期三,则第一个星期一是该周。如果第一天是周四到周日,那么第一个周一就是下周一。
Public Function FirstMonday(myDate As Date) As Date
Dim d As Date, w As Long
d = DateSerial(Year(myDate), month(myDate), 1)
w = Weekday(d, vbMonday)
FirstMonday = d + IIf(w <> 1, 8 - w, 0)
End Function
以 2021 年 8 月为例 - 第一个星期一将是 02/08/2021,因为该月的第一天是星期日(即星期三之后)。
2021 年 9 月 - 第一个星期一将是 2021 年 8 月 30 日,因为该月的第一天是星期三。
2021 年 10 月 - 第一个星期一是 2021 年 4 月 10 日,因为该月的第一天是星期五。
可以提供任何很棒的帮助。
提前致谢,
乔诺
【问题讨论】:
-
这能回答你的问题吗? First Monday of Current Month in VBA
-
您可以在模块
DateFind中使用DateWeekdayInMonthFirst中的通用函数VBA.Date。 -
dim myFirstMonday as date --> Dim myFirstWednesday as date --> myDate = FirstMonday("01/10/2021") --> myFirstWednesday = dateAdd("d", 2, myFirstMonday)