У меня есть набор данных, который включает в себя даты.Мне нужно разделить это по номеру недели для отчетности.Пока что у меня есть:
переменная startDate, содержащая 01.03.2015 (заполненная данными из электронной таблицы)
startDay = Day(startDate)
startMonth = Month(startDate)
startYear = Year(startDate)
startWeek = Application.WorksheetFunction.WeekNum(DateSerial(startYear, startMonth, startDay))
, которая дает мне первую неделю в startWeek
Тем не менее, я знаю, что нужно знать, как далеко находится первая неделя.Таким образом, для этого примера, поскольку дата - 3 января, она включает 3 дня недели 1
То есть отчет, который я собираю, будет представлять отчет только за 3 дня (в отличие от полной недели)
Единственный способ, который я рассчитывал сделать до сих пор, - это рассчитать, какой день года является датой, и использовать расчет MOD (в основном, делить на 7, а остаток - как далеко до недели).)
dayNumber = DateDiff("d", DateSerial(startYear, 1, 1), DateSerial(startYear, startMonth, startDay)) + 1
dayOfWeek = dayNumber Mod 7
Это работает, но мне было интересно, есть ли более хорошее решение, чем это.