Это «набросок» кода, который вам нужно будет написать. Stackoverflow - это не служба запроса кода, поэтому вам нужно приложить все усилия, чтобы написать ее самостоятельно. Сообщество с радостью поможет вам устранить неполадки, пока вы учитесь, но вы должны много использовать Google. Я написал эскиз, чтобы вы начали, потому что я помню, как тяжело было научиться основам кодирования. Не стесняйтесь задавать уточняющие вопросы.
Прежде всего я не могу заставить Excel распознавать формат DD / MM / YYYY. Это может быть потому, что у меня копия из США, а это не стандартный формат времени. Похоже, вы используете другую версию Excel из-за формул, которые вы перечислили. Однако при повторной проверке убедитесь, что ваш код правильно читает формат DD / MM / YYYY.
Создайте переменную cl
, которая является вашей текущей строкой. Создайте md
, который является разницей в месяце.
Если Month (Start Date)
меньше Month(End Date)
, то md = Difference of Months
, вставить столько строк ниже текущей строки. Range("E" & cl+md).Value = Range("E" & cl)
, которая вставляет дату окончания в последний слот.
Затем для cl < cl+md
заполните периоды, добавив +1 к значению, если последнее число не равно 4, и +97, если оно есть.
Затем заполните пустые ячейки для дат с Start of Month
и End of Month
датами.
Наконец, установите cl = cl + md + 1
и loop
, чтобы перейти к следующей «исходной» строке.