我已经创建了一个VBA来自动填充昨天在单元格中的日期,但需要帮助,因为如何在星期一触发它时将日期定为6月16日(星期五)而不是6月18日(星期日)。
`If .Column <> 11 Or .Row < 1 Then Exit Sub
If .Value = "Select" Then
If .Offset(0, 1).Value = "" Then
.Offset(0, 1).NumberFormat = "mm/dd/yy"
.Offset(0, 1).Value = Now - 1
.Offset(0, 2).Value = Now - 1
.Offset(0, 2).NumberFormat = "mmm-yy" '<~~ mmm-yy
.Offset(0, 3).Value = GetMonthWeek(Now - 1)
End If'
答案 0 :(得分:1)
我不确定是否有任何内置方法,但以下逻辑有效:
Dim tempDate
tempDate = DateAdd("d", -1, Date) 'Today's date - 1
While Weekday(tempDate) = 1 Or Weekday(tempDate) = 7 'If tempDate is a Sunday or a Saturday, keep on subtracting one day until we get a weekday
tempDate = DateAdd("d", -1, tempDate)
Wend
Cells(1, 1).Value = tempDate
尝试在代码中实现此功能,并告诉我它是否有效。 :)
答案 1 :(得分:1)