2017-01-09 4 views
0

В настоящее время у меня есть это:Vba дней в неделю в одну неделю

Now() - Weekday(Now(), vbMonday) + 1 

Проблема заключается в том, если я использую другую неделю, в тот же день все еще показывает.

У меня есть раскрывающийся список, который показывает мне дни с выбранной мной недели. Теперь он выбирает его с этой недели, так и на неделе 1 дата понедельника уже девятая.

Как это должно быть: Я выбираю номер недели, и даты, соответствующие этому номеру недели, должны быть указаны в выпадающем списке.

Может кто-нибудь, пожалуйста, помогите мне? Я действительно не знаю, что делать.

+0

Дело в том, что вы используете функцию Now(), которая возвращает текущую дату. Вам нужно указать неделю или день, которые вы берете из выпадающего списка. Можете ли вы поделиться подробностями в раскрывающемся списке и форме дат? А также ссылки выпадающего списка? – Rufus

+0

@Rufus У меня есть StartDate = Now() - Weekday (Now(), vbMonday) + 1 getWeekDatums = getWeekDatums & CStr (Format (StartDate, "dd-mm-yyyy")) в коде, который вызывается по выпадающему списку – user7219039

ответ

0

Вы могли бы использовать что-то вроде этого, если я у вас есть.

Function FirstMondayInWeek(intWeekNum As Integer) As Date 

Dim d As Date 

d = DateSerial(Year(Now) - 1, 12, 31) 

Do Until Weekday(d, vbMonday) = 1 
    d = d + 1 
Loop 

FirstMondayInWeek = DateAdd("WW", intWeekNum - 1, d) 

End Function 
Смежные вопросы