簡體   English   中英

Excel VBA上的日期過濾器

[英]Date filter on Excel VBA

我在網上搜索了所有內容,但找不到任何可以適當幫助我編寫代碼的內容。

我需要的很簡單,但是我仍然找不到。

*情況->每天,在我公司中,我們都會收到按實際月份累積的銷售報告。 因為我有自己的工作簿,所以每天我只能過濾所需的信息並將其粘貼到我的工作簿中。 星期一是星期一,我們從星期五和星期六開始收到銷售信息。 我正在嘗試編寫一些代碼,以便僅在昨天(如果不是星期一)進行過濾,並在星期五和星期六進行過濾,以防萬一。

第D欄包含我要過濾的日期

因為今天是星期四,所以我將if條件設置為vbthursday以便進行測試。

sabado =星期六; 星期五= sexta;

Sub Data()
Dim yesterday As String


If Weekday(Date, vbThursday) = 1 Then

Dim sabado As String
Dim sexta As String
Range("D1").Select
Selection.AutoFilter
sabado = Format(Date - 2, "dd/mm/yyyy")
sexta = Format(Date - 3, "dd/mm/yyyy")

ActiveSheet.Range("$A$1:$E$11").AutoFilter Field:=4, Operator:= _
xlFilterValues, Criteria1:="=" & sabado, Criteria2:="=" & sexta



Else

Range("D1").Select
Selection.AutoFilter
yesterday = Format(Date - 1, "dd/mm/yyyy")
ActiveSheet.Range("$A$1:$E$11").AutoFilter Field:=4, Operator:= _
xlFilterValues, Criteria1:="=" & yesterday



End If

實際上,if條件在起作用,它可以識別何時為vbMonday(在測試案例中為vbThursday),何時不工作。 else條件也可以正常工作,它會像應該過濾一樣進行過濾。 問題是,當宏進入if條件時,它不能正確過濾。 它一直運行到最后,並且沒有任何錯誤。

有人幫助:(

這樣的事情怎么樣?

Sub Data()
    Dim datesToFilter()

    If Weekday(Date, vbMonday) = 1 Then
        datesToFilter = Array(Date - 2, Date - 3)
    Else
        datesToFilter = Array(Date - 1)
    End If

    ActiveSheet.Range("$A$1:$E$11").AutoFilter Field:=4, Operator:= _
    xlFilterValues, Criteria1:=datesToFilter

End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM