Страница 2 из 2
Re: Ексель+VBA
Добавлено: 08 май 2008, 21:58
VictorM
Pavel55, как всегда прав

А вообще, все что касается работы с датой/временем - сплошная мутота. Одни "тонкости".
Re: Ексель+VBA
Добавлено: 27 май 2008, 14:28
VictorM
Прошло 3 недели и оказалось, что в макросе от
Pavel55 ошибка.
При прибавлении к дате, допустим 27.04.08, 7-ми дней, получалась дата 04/34/2008.
Все из-за этих "тонкостей" с датой

, форматом даты.
Правильно оказалось так:
Код: Выделить всё
Sub Выбрать1()
Dim iDateOne As Date
Dim iDateTwo As Date
iDateOne = Range("L2")
iDateTwo = iDateOne + 7
iCriteria1 = ">=" & Format(iDateOne, "#")
iCriteria2 = "<=" & Format(iDateTwo, "#")
ActiveSheet.ListObjects("Таблица1").Range.AutoFilter Field:=5, Criteria1:=iCriteria1, Operator:=xlAnd, Criteria2:=iCriteria2
End Sub
"подсмотрено" здесь >
http://msoffice.nm.ru/faq/macros/filters.htm#faq35
Re: Ексель+VBA
Добавлено: 13 июл 2008, 23:02
VictorM
Решил не создавать новую тему, вопрос опять по дате и автофильтру.
Возникла задача выбрать в таблице, формирующейся в течение года, данные за текущий месяц. В общем случае месяц может быть задан датой, например 12.03.08 из календаря. Пробовал применить код от Pavel55 , но чёт никак не получается. Не могу выбрать именно МЕСЯЦ.
Спасибо.
Re: Ексель+VBA
Добавлено: 14 июл 2008, 00:07
VictorM
Вопрос решился, подсказал
pashulka.
Если кому интересно:
Автофильтр - Данные за текущий месяц
Код: Выделить всё
Dim iDateOne As Date, iDateTwo As Date
Dim iCriteria1 As String, iCriteria2 As String
iDateOne = DateSerial(Year(Date), Month(Date), 1)
iDateTwo = DateSerial(Year(Date), Month(Date) + 1, 1)
iCriteria1 = ">=" & Format(iDateOne, "#")
iCriteria2 = "<" & Format(iDateTwo, "#")
Range("A:A").AutoFilter Field:=1, _
Criteria1:=iCriteria1, Operator:=xlAnd, Criteria2:=iCriteria2
или так, без переменных, одной строкой
Код: Выделить всё
[A:A].AutoFilter Field:=1, _
Criteria1:=">=" & CDbl(DateSerial(Year(Date), Month(Date), 1)), Operator:=xlAnd, _
Criteria2:="<=" & CDbl(DateSerial(Year(Date), Month(Date) + 1, 0))
Re: Ексель+VBA
Добавлено: 14 июл 2008, 10:31
Aent
Только когда пишете одной строкой второй критерий должен так же быть < а не <=

Re: Ексель+VBA
Добавлено: 14 июл 2008, 10:36
VictorM
упс.....

ошибочка вышла...
Спасибо за поправку

Re: Ексель+VBA
Добавлено: 24 фев 2011, 15:59
Azazelpj
Хотел удалить или оставить все значения в столбце, которые заканчиваются на 2, НО все становится скрытым - не выбранным.
Sub Макрос5()
'
' Макрос5 Макрос
'
' Сочетание клавиш: Ctrl+а
'
ActiveSheet.ListObjects("Таблица1").Range.AutoFilt er Field:=1, Criteria1:= _"=*2", Operator:=xlAnd
End Sub
И еще, как добавить в код поиск чисел с окончанием 4 7 и т.д.?