Страница 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
упс..... :confused:
ошибочка вышла...
Спасибо за поправку :rolleyes:

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 и т.д.?