2015-02-06 240 views
0

我需要设置切片器以激活昨天的日期条目。我已经将以下代码放在一起,并按照我的意愿停用/激活和交互。缺点是它不断突出显示它不应该显示的字段(请参阅:在适当的日期之前的几天输入)。将切片器设置为昨天的日期

Private Sub GroundHogDay() 

Dim ydate As Date 
ydate = Today - 1 
Dim YDateString As String 
YDateString = Format$(ydate, "mm/dd/yyyy") 

Dim item As SlicerItem 

For Each item In ThisWorkbook.SlicerCaches("Slicer_Date").SlicerItems 
    If item.Name > YDateString Then 
     item.Selected = True 
    Else 
     item.Selected = False 
    End If 
Next item 

ThisWorkbook.RefreshAll 

End Sub 

任何和所有帮助将不胜感激。

编辑:我试过了 - 没有效果。

Today - 2 
Now - 1 
Now - 2 

回答

1

最终的答案被发现:

Sub GroundHogDay() 
Dim today As Date 
today = Now - 2 
Dim todayString As String 
todayString = Format$(today, "m/d/yyyy") 

Dim item As SlicerItem 

ThisWorkbook.SlicerCaches("DATE").ClearManualFilter 
With ActiveWorkbook.SlicerCaches("DATE") 
'earliest data available in the data 
.SlicerItems("1/1/2013").Selected = True 
.SlicerItems("(blank)").Selected = False 
End With 

For Each item In ThisWorkbook.SlicerCaches("DATE").SlicerItems 

If item.Name = todayString Then 
item.Selected = True 
Else 
item.Selected = False 
End If 
Next item 

ThisWorkbook.RefreshAll 

End Sub