2013-06-04 6 views
1

Я хотел бы таблицу, которая выглядит следующим образом:Авто-Decrement месяц года

enter image description here

Теперь, когда сама по себе не очень усложняя тем не менее я хотел бы преуспеть в авто-декремента месяц так что каждый месяц, месяц в позиции 0 - текущий месяц, а остальные перемещаются на одну позицию. Итак, когда месяц должен дойти до позиции 18, он удаляется из таблицы? Это имеет смысл?

+0

Это имеет смысл. Попробуйте записать макрос, настроив новый месяц. Вы должны быть в состоянии написать это самостоятельно. Если вы застряли, отправьте свой код и попросите о помощи со стороны, которая не работает. –

+0

Я больше не знаю, как начать, не могли бы вы отправить ответ. –

+0

Хотели бы вы, чтобы вся строка двигалась вниз или просто меняла содержимое первых 18 ячеек листа? Смысл, хотите ли вы перемещать вещи или просто пересчитывать, что такое «этот месяц» и «предыдущий месяц» и так далее? –

ответ

1

Вот что я сделал:

= DATE(YEAR(NOW()), MONTH(NOW())-O599, 1) 

O599 является расположение номер столбца, который начинается с 0. Так как мы смотрим дальше вниз по таблице он вычитает количество, указанное в колонке Номер от тока месяц!

enter image description here

4

Вы можете сделать это просто с помощью формул. Для первого дня использовать эту формулу в B2

=EOMONTH(TODAY(),-1)+1

Теперь используется B3 эта формула скопирована вниз

=EDATE(B2,-1)

пользовательский формат все даты как MMM-YYYY

Даты обновит автоматически по первому из каждого месяца - значение базовой даты - первое из каждого месяца, но оно будет отображаться только с месяцем и годом

1

Лист макета:

A2:A20: количество моли (0..18)
В2: =EDATE(NOW();-A2)
Формат Сотовый: mmm-yyyy (или что-то другое в соответствии с потребностями)

Формула скопирована вниз.

2

Это даст вам месяц на 18 месяцев назад. Затем вы можете создать макрос, который скопирует его и получит приращение месяца.

MyMonth = DateAdd("m", -18, Date) 

Это похоже на то, что вам нужно:

Selection.Copy 
Application.CutCopyMode = False 
Selection.AutoFill Destination:=Range("A2:A20"), Type:=xlFillDefault 
Range("A2:A20").Select