2015-08-28 3 views
2
DateAdd("m", -(Month(Date) - 1) Mod 3 - 1, Date) 

Это дает мне 6/28/2015, пока мне нужно 20150630. Я могу работать над частью формата, но не знаю, как получить последний день предыдущего квартала вместо сегодняшней даты последнего квартала.Получить последний день предыдущего квартала

+0

Вместо того, чтобы выяснить, месяц предыдущего квартала, найти 1-й месяц текущего квартала и создать дату (с 'DateSerial') с найденным годом и месяцем, но с использованием дня' 1'. Затем вычтите из него «1». – ssarabando

+0

Ах, дерьмо, я сделал это с помощью формулы, но это может работать: '= EOMONTH (NOW(), MOD (-MONTH (NOW()), 3) -3)', вы можете заменить 'NOW()' на что угодно вам нужно. – Soulfire

ответ

2

Это должно работать на VBA. Он просто определяет первый день текущего квартала и затем вычитает один день.

Debug.Print DateAdd("q", DatePart("q", Date) - 1, "1/1/" & Year(Date)) - 1 
Смежные вопросы