簡體   English   中英

如何使用變量自動過濾(WEEKNUM)

[英]How to Autofilter using a variable (WEEKNUM)

我正在嘗試創建一個宏,該宏根據當前星期數過濾表格。

我將變量“ ThisWeek”設置為當前星期數:

Dim ThisWeek As Variant

ThisWeek = "=WeekNum(TODAY())"

這將產生星期數,我正在過濾的列中有一個星期數列表(根據另一列中的日期顯示WEEKNUM公式的結果)

但是我無法使用以下代碼來獲取接受變量的標准:

Sheet2.ListObjects("Table3").Range.AutoFilter Field:=10, Criteria1:=ThisWeek

我已經在網上搜索了兩個小時,並嘗試了很多變量,包括:

Sheet2.ListObjects("Table3").Range.AutoFilter Field:=10, Criteria1:=">=" & ThisWeek, Operator:=xlAnd, Criteria2:="<=" & ThisWeek

我也嘗試過將變量類型更改為整數。

但沒有運氣..任何幫助深表感謝!

謝謝

我可以為AutoFilter提供的最佳方法是將TODAY()(在VBA中為Date )解析為開始日期和結束日期,然后將AutoFilter的Criteria1和Criteria2參數與Operator:=xlAnd 在VBA中,使用Weekday(<date>, [<optional vbDayOfWeek>])函數和一些小數學運算來查找上一個星期日(或任何其他DOW)和下一個星期六是一件小事。

Weekday和Date函數用於始終解析動態日期,例如5月的第二個星期日或11月的第三個星期一。

在VBA中,必須使用Date()而不是TODAY(),並且要獲取星期數,請使用DatePart()

您必須檢查一下,您所在國家/地區的周數是如何計算的,並調整此函數的firstweekofyear參數。

在歐洲,例如在VBA中使用DatePart("ww", Date, vbMonday, vbFirstFourDays)
工作表中相應的星期數函數是WEEKNUM(...,21)。

Dim ThisWeek As Integer
ThisWeek = DatePart("ww", Date, vbMonday, vbFirstFourDays)
Sheet2.ListObjects("Table3").Range.AutoFilter Field:=10, Criteria1:=ThisWeek

也可以對其進行評估 (不確定是否需要使用"=" &部分):

ThisWeek = "=" & [WeekNum(TODAY())]

暫無
暫無

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

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