如何在Excel切片器中找到多维数据集中的维度

时间:2017-01-13 18:09:24

标签: excel pivot-table slicers

我想弄清楚如何为切片器获取立方体的尺寸。我已经尝试了一切以使其发挥作用,但没有成功。

以下代码是我使用切片器将当天设置为今天的日期。

Dim today As Date
today = Now
Dim todayString As String
todayString = Format$(today, "mm/dd/yyyy")
ThisWorkbook.SlicerCaches("Slicer_Created_on").ClearManualFilter
ActiveWorkbook.SlicerCaches("Slicer_Created_on").VisibleSlicerItemsList=
Array( _  
"[Period].[Date].&[" & todayString & "]") ' This is where the error occurs.

上述代码在本网站的以下链接中找到: Set excel slicer to todays date

我试图修改它以便

"[Period].[Date].&[" & todayString & "]")

采用以下格式:     " [时段] / [日期] /&安培; [" &安培;今天串口& "]&#34)

创建了两个维度: 年和月并修改如下:     昏暗的一个月     一个月=格式$(今天,"毫米&#34)     todaystring = format $(今天," dd")     年=格式$(今天," YYYY&#34)

"[Month]/&["& todaystring & "]" & [Year]")

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

经过几个小时的修补,我无法弄清楚如何确定多维数据集的值是什么,因此我使用了在此站点上找到的不同代码。

点击此链接:Set excel slicer to todays date

Sub SlicerSelectToday()

Dim today As Date
today = Now
Dim todayString As String
todayString = Format$(today, "m/d/yyyy") ' I have US date

Dim item As SlicerItem

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

ThisWorkbook.RefreshAll

End Sub

编辑: 如果可能,请避免循环遍历所有日期值,因为它需要更长时间。我强烈建议您使用数据透视表记录要完成的任务的宏,然后根据需要编辑宏。例如,在应用日期过滤器“Date Filter> Yesterday”值时,记录您的操作的宏,仅显示昨天的数据。 类似于我在此链接中所做的事情Excel 2013 VBA Pivot Table Select Only Top 5 Items With Ties。 我希望这有助于某人。