我试图过滤日期以仅反映过去三个月,当前月份和接下来的3个月。我最终得到的是所有年份在该范围内的所有日期。也出于某种原因,它取消了3月的第二周。我做错了什么?
以下代码
For Each pi In pvt.PivotFields("Week Of").PivotItems
Select Case pi.Value
Case Is < DateSerial(Year(Now) + 1, Month(Now) - 3, Day(Now))
pi.Visible = False
Case pi.Value > DateSerial(Year(Now) + 1, Month(Now) + 3, Day(Now))
pi.Visible = False
Case Else
pi.Visible = True
End Select
答案 0 :(得分:1)
您的案例陈述不是一致的。第一个说:
Case Is < ...
你的第二个人说:
Case pi.Value > ...
我很确定第二个也应该使用Case Is
。不确定这是否会解决问题,但我想指出它。
或者您可以重写代码以完全跳过Case语句:
iEarliest = DateSerial(Year(Now) + 1, Month(Now) - 3, Day(Now))
iLatest = DateSerial(Year(Now) + 1, Month(Now) + 3, Day(Now))
For Each pi In pvt.PivotFields("Week Of").PivotItems
If pi.Value > iLatest or pi.Value < iEarliest then
pi.Visible = False
Else
pi.Visible = True
End if
Next