2017-05-06 6 views
2

前の月曜日の日付を取得しようとしています。したがって、今日が2011年6月5日の場合は、私がExcelを開いた場合、VBAを使用して1/5/2017(先週の月曜日)に戻る必要があります。WeekdayName関数で最後の月曜日を取得する

これは私のコードです:

Dim strdate As String 
Select Case WeekdayName(Now()) 
Case vbMonday 
    strdate = Now() 
Case vbTuesday 
    strdate = Now() - 1 
Case vbWednesday 
    strdate = Now() - 2 
Case vbThursday 
    strdate = Now() - 3 
Case vbFriday 
    strdate = Now() - 4 
Case vbSaturday 
    strdate = Now() - 5 
Case vbSunday 
    strdate = Now() - 6 
End Select 

これは期待される結果を返さない理由を誰もがお勧めすることはできますか?

+1

代わりWeekDayNameの平日を()()試してみてください –

答えて

0

私はこれを使用します。

Dim d As Date 
    d = Date 

Do Until Weekday(d) = vbMonday 
    d = DateAdd("y", -1, d) 
Loop 

'd = date of previous Monday 
4

前の月曜日の日付が常にある

PreviousMonday = Date - Weekday(Date - 1, vbMonday) 
関連する問題