[/vba] Мне нужно, чтобы выбрались все даты ДО прошлого месяца. То есть все кроме прошлого месяца и нынешнего месяца. Каким тогда будет код?
Если запущу макрос сегодня, остаться должны все месяцы до июня (не включительно). Если запущу макрос в августе, остаться должны все месяцы до июля (не включительно).
Это возможно?
Спасибо. Пример приводить, думаю, нет смысла.
Здравствуйте.
Я отфильтровал список, чтобы отобразились данные только за прошлый месяц. Код макроса вышел таким: [vba]
[/vba] Мне нужно, чтобы выбрались все даты ДО прошлого месяца. То есть все кроме прошлого месяца и нынешнего месяца. Каким тогда будет код?
Если запущу макрос сегодня, остаться должны все месяцы до июня (не включительно). Если запущу макрос в августе, остаться должны все месяцы до июля (не включительно).
Это возможно?
Спасибо. Пример приводить, думаю, нет смысла.iilfat
Сообщение отредактировал Manyasha - Пятница, 24.07.2015, 14:46
Sub filter_by_date() lr = Cells(Rows.Count, 1).End(xlUp).Row With CreateObject("Scripting.Dictionary"): .CompareMode = vbTextCompare For Each elem In Range("a2:a" & lr) If IsDate(elem) Then If Month(elem) < Month(Now) - 1 Then .Item(elem) = .Item(elem) + 1 Next elem arrDate = .keys() ActiveSheet.Range("$A$1:$X$100").AutoFilter Field:=1, Operator:= _ xlFilterValues, Criteria1:=arrDate End With End Sub
[/vba]
Можно так: [vba]
Код
Sub filter_by_date() lr = Cells(Rows.Count, 1).End(xlUp).Row With CreateObject("Scripting.Dictionary"): .CompareMode = vbTextCompare For Each elem In Range("a2:a" & lr) If IsDate(elem) Then If Month(elem) < Month(Now) - 1 Then .Item(elem) = .Item(elem) + 1 Next elem arrDate = .keys() ActiveSheet.Range("$A$1:$X$100").AutoFilter Field:=1, Operator:= _ xlFilterValues, Criteria1:=arrDate End With End Sub