Я видел, как цикл в течение недель года, w1301, w1302, w1303, я могу получить номер недели, если я прокручу + число в неделю, но я верю есть способ напрямую подключиться еженедельно с vba, я надеюсь, по крайней мере.Как пройти через недели в диапазоне дат с помощью vba
DateSerial(Year(Now), Month(Now), Day(Now)) To DateSerial(2013, 3, 1)
StartDate = #1/1/2013#
EndDate = #12/31/2013#
For DateLooper = StartDate To EndDate
Я получил функцию на номер недели от даты
Public Function IsoWeekNumber(d1 As Date) As Integer
Attributed to Daniel Maher
Dim d2 As Long
d2 = DateSerial(Year(d1 - WeekDay(d1 - 1) + 4), 1, 3)
IsoWeekNumber = Int((d1 - d2 + WeekDay(d2) + 5)/7)
End Function
В чем вопрос? –
Это цикл за несколько дней, есть ли опрятный способ цикла в течение недель, вместо того, чтобы делать это с +7 по дням и getWeek? apparaently vba может зацикливаться на день, может быть, он тоже может зацикливаться на неделе – trackmeifUcan
Я не уверен, что вы имеете в виду, зациклив на недели. Вы можете использовать цикл от 1 до 52 ('для i = 1 до 52: сделать что-то: следующее i'). Вы можете прокручивать дату, представляющую первый (или определенный) день каждой недели. Вы можете найти первый день первой недели, а затем перебрать через 7 дней каждый раз, например: 'Для startOfWeek = DateSerial (2013, 1, 1) To DateSerial (2013, 1, 1) + 52 * 7 Шаг 7 'и т. д. Тип данных не представляет недели. Поэтому либо вам нужно определить его как число (например, номер недели), либо как тип даты, представляющий данный день недели. –