2015-02-06 241 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