Я знаю, что тема немного устарела, но я решила поделиться своим рабочим решением, которое я считаю более кратким.Где dDate
- ваша текущая дата:
dDate = DateAdd("d", -(WeekDay(dDate, vbMonday) - 1), dDate)
Второй параметр WeekDay
- это день, когда вы хотите, чтобы неделя начала.Для меня в США WeekDay
соответствует второму параметру по умолчанию vbSunday
.Указывая vbMonday
, мы просто получаем разницу (основание 1) между нашим текущим днем недели и понедельником.Вычтите 1 и добавьте обратное значение к вашей текущей дате, чтобы получить ваш результат.
Пример:
WeekDay(2018-03-20, vbMonday) = -((2) - 1) = DateAdd("d", -1, 2018-03-20)