[英]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.