Вы можете использовать функции DateAdd и DateSerial .
Представьте, что сегодня 2019-01-23
. Тогда ...
DateSerial(Year(Date), Month(Date), 1)
… даст вам первый день текущего месяца 2019-01-01
. Если затем мы вычтем 1 день из этого, используя…
LastDayOfPreviousMonth = DateAdd("d", -1, DateSerial(Year(Date), Month(Date), 1))
… мы получаем последний день предыдущего месяца 2018-12-31
, который должен быть вашей конечной датой. И если мы вычтем 12 месяцев с этой даты ...
StartDate = DateAdd("m", -12, LastDayOfPreviousMonth)
… вы получите дату начала 2017-12-31
.
Sub filter_()
MsgBox "12 months filter"
Dim LastDayOfPreviousMonth As Date
LastDayOfPreviousMonth = DateAdd("d", -1, DateSerial(Year(Date), Month(Date), 1))
Dim StartDate As Date
StartDate = DateAdd("m", -12, LastDayOfPreviousMonth)
Sheets("RBT-RAT ").ListObjects("Tableau1").Range.AutoFilter Field:=30, _
Criteria1:=">=" & StartDate, _
Operator:=xlAnd, _
Criteria2:="<=" & LastDayOfPreviousMonth
End Sub