VBA для фильтра даты, возвращающего пустое - PullRequest
0 голосов
/ 17 марта 2020

Когда я запускаю приведенный ниже макрос, все строки скрываются, даже когда я щелкаю в фильтре и повторно применяю (я не изменяю текст, просто нажимаю ввод). Я также убедился, что данные отформатированы соответствующим образом. Любая помощь с благодарностью!

 Sub Dates()
    '
    ' Dates Macro
    '
    Dim todaysdate As Date
    Dim ITTrecieved As Date
    Dim greaterthan
    greaterthan = ">="
    todaysdate = Format(Date, "dd/mm/yyyy")
    todaysdate = CDbl(todaysdate)

    ITTrecieved = DateSerial(Year(todaysdate), Month(todaysdate) - 2, Day(todaysdate))
    ITTrecieved = CDbl(ITTrecieved)


'
        ActiveSheet.Range("F3").AutoFilter Field:=5, _
            Criteria1:=">=" & ITTrecieved, Operator:=xlFilterValues

        ActiveSheet.Range("H3").AutoFilter Field:=7, _
            Criteria1:=">=" & todaysdate, Operator:=xlFilterValues


End Sub

Ответы [ 3 ]

0 голосов
/ 17 марта 2020

Попробуйте

Sub Dates()

    Dim today As Double, ITTrecieved As Double
    Dim ws As Worksheet
    Set ws = ActiveSheet

    today = Date
    ITTrecieved = DateAdd("m", -2, today)

    ws.Range("F3").AutoFilter Field:=5, _
        Criteria1:=">=" & ITTrecieved, Operator:=xlAnd

    ws.Range("H3").AutoFilter Field:=7, _
        Criteria1:=">=" & today, Operator:=xlAnd
End Sub
0 голосов
/ 18 марта 2020

Спасибо за вашу помощь, я понял, в чем была ошибка. Я перебрал фильтр сегодня на ранний срок, так что это повлияло на переменную ITTReceived. Работает ниже:

Sub Dates()

'Dim todaysdate As Date' Dim ITT получено как Date

todaysdate = Format (Date, "dd / mm / yyyy")

ITTrecieved = DateSerial(Year(todaysdate), Month(todaysdate) - 2, Day(todaysdate))
ITTrecieved = CDbl(ITTrecieved)
todaysdate = CDbl(Date)

'ActiveSheet.Range ("F3"). Поле автофильтра: = 5, _' Критерии1: = "> =" & ITTrecovered, Operator: = xlFilterValues ​​

ActiveSheet.Range("F3").AutoFilter Field:=5, _
        Criteria1:=">" & ITTrecieved, Operator:=xlOr

'ActiveSheet.Range ("H3 ") .AutoFilter Field: = 7, _ 'Criteria1: ="> = "& сегодняшний день, оператор: = xlFilterValues ​​

ActiveSheet.Range("H3").AutoFilter Field:=7, _
        Criteria1:=">" & todaysdate, Operator:=xlOr

End Sub

0 голосов
/ 17 марта 2020
Sub FilterDates()
'
    Dim todaysdate As Date
    Dim ITTrecieved As Date

    todaysdate = Format(Date, "dd/mm/yyyy")
    todaysdate = CDbl(todaysdate)

    ITTrecieved = DateSerial(Year(todaysdate), Month(todaysdate) - 2, Day(todaysdate))
    ITTrecieved = CDbl(ITTrecieved)


    With Worksheets("Sheet1").Range("B3")
.AutoFilter field:=5, Criteria1:=">=" & ITTrecieved, Operator:=xlAnd
.AutoFilter field:=7, Criteria1:=">=" & todaysdate, Operator:=xlAnd
End With

End Sub

Привет, я думаю, я просто не понимаю, что вы хотели бы видеть. Я понял, что вы пытаетесь фильтровать данные, используя два разных фильтра из двух разных столбцов. Ваш код, кажется, делает это, но если вы видите другие результаты, это означает, что я полностью неправильно понял.

До запуска макрофильтра

После запуска макрофильтра

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...