如何在立方体中为 Excel 切片器查找维度

How to find Dimensions in cube for Excel slicer

我想知道如何为我的切片器获取立方体的尺寸。我已尽一切努力让它工作,但没有成功。

下面的代码是我用来让切片器将日期设置为今天的日期的代码。

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.

以上代码是在本网站上找到的 link:

我尝试对其进行修改,以便

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

是这种格式: "[期间]/[日期]/&[" & todayString & "]")

创建了另外两个维度: 年份和月份并像这样修改它: 暗月 月=格式$(今天,"mm") todaystring =format$(今天,"dd") 年=格式$(今天,"yyyy")

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

感谢您的宝贵时间。

经过数小时的修改,我无法弄清楚如何确定多维数据集的值,所以我使用了在此站点上找到的不同代码。

此时link:

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

结束子

编辑: 如果可能,请避免遍历所有日期值,因为它需要更长的时间。我强烈建议录制您希望使用数据透视表完成的任务的宏,然后根据您的需要编辑宏。例如,当您应用日期过滤器 "Date Filter>Yesterday" 值以仅显示昨天的数据时,记录您的操作宏。 类似于我在 link 中所做的事情。 我希望这对某人有所帮助。